HDFS-13706. [SBN read] Rename client context to ClientGSIContext. Contributed by Konstantin Shvachko.
This commit is contained in:
parent
00e99c6594
commit
0105d7f597
@ -27,12 +27,14 @@
|
|||||||
import java.util.concurrent.atomic.LongAccumulator;
|
import java.util.concurrent.atomic.LongAccumulator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Global State Id context for the client.
|
||||||
|
* <p/>
|
||||||
* This is the client side implementation responsible for receiving
|
* This is the client side implementation responsible for receiving
|
||||||
* state alignment info from server(s).
|
* state alignment info from server(s).
|
||||||
*/
|
*/
|
||||||
@InterfaceAudience.Private
|
@InterfaceAudience.Private
|
||||||
@InterfaceStability.Stable
|
@InterfaceStability.Stable
|
||||||
class ClientGCIContext implements AlignmentContext {
|
class ClientGSIContext implements AlignmentContext {
|
||||||
|
|
||||||
private final LongAccumulator lastSeenStateId =
|
private final LongAccumulator lastSeenStateId =
|
||||||
new LongAccumulator(Math::max, Long.MIN_VALUE);
|
new LongAccumulator(Math::max, Long.MIN_VALUE);
|
@ -67,11 +67,11 @@ public class TestStateAlignmentContextWithHA {
|
|||||||
private static final int NUMFILES = 300;
|
private static final int NUMFILES = 300;
|
||||||
private static final Configuration CONF = new HdfsConfiguration();
|
private static final Configuration CONF = new HdfsConfiguration();
|
||||||
private static final String NAMESERVICE = "nameservice";
|
private static final String NAMESERVICE = "nameservice";
|
||||||
private static final List<ClientGCIContext> AC_LIST = new ArrayList<>();
|
private static final List<ClientGSIContext> AC_LIST = new ArrayList<>();
|
||||||
|
|
||||||
private static MiniDFSCluster cluster;
|
private static MiniDFSCluster cluster;
|
||||||
private static List<Worker> clients;
|
private static List<Worker> clients;
|
||||||
private static ClientGCIContext spy;
|
private static ClientGSIContext spy;
|
||||||
|
|
||||||
private DistributedFileSystem dfs;
|
private DistributedFileSystem dfs;
|
||||||
private int active = 0;
|
private int active = 0;
|
||||||
@ -80,7 +80,7 @@ public class TestStateAlignmentContextWithHA {
|
|||||||
static class AlignmentContextProxyProvider<T>
|
static class AlignmentContextProxyProvider<T>
|
||||||
extends ConfiguredFailoverProxyProvider<T> {
|
extends ConfiguredFailoverProxyProvider<T> {
|
||||||
|
|
||||||
private ClientGCIContext alignmentContext;
|
private ClientGSIContext alignmentContext;
|
||||||
|
|
||||||
public AlignmentContextProxyProvider(
|
public AlignmentContextProxyProvider(
|
||||||
Configuration conf, URI uri, Class<T> xface,
|
Configuration conf, URI uri, Class<T> xface,
|
||||||
@ -89,14 +89,14 @@ public AlignmentContextProxyProvider(
|
|||||||
|
|
||||||
// Create and set AlignmentContext in HAProxyFactory.
|
// Create and set AlignmentContext in HAProxyFactory.
|
||||||
// All proxies by factory will now have AlignmentContext assigned.
|
// All proxies by factory will now have AlignmentContext assigned.
|
||||||
this.alignmentContext = (spy != null ? spy : new ClientGCIContext());
|
this.alignmentContext = (spy != null ? spy : new ClientGSIContext());
|
||||||
((ClientHAProxyFactory) factory).setAlignmentContext(alignmentContext);
|
((ClientHAProxyFactory) factory).setAlignmentContext(alignmentContext);
|
||||||
|
|
||||||
AC_LIST.add(alignmentContext);
|
AC_LIST.add(alignmentContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override // AbstractNNFailoverProxyProvider
|
@Override // AbstractNNFailoverProxyProvider
|
||||||
public synchronized ClientGCIContext getAlignmentContext() {
|
public synchronized ClientGSIContext getAlignmentContext() {
|
||||||
return this.alignmentContext;
|
return this.alignmentContext;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -104,7 +104,7 @@ public synchronized ClientGCIContext getAlignmentContext() {
|
|||||||
static class SpyConfiguredContextProxyProvider<T>
|
static class SpyConfiguredContextProxyProvider<T>
|
||||||
extends ConfiguredFailoverProxyProvider<T> {
|
extends ConfiguredFailoverProxyProvider<T> {
|
||||||
|
|
||||||
private ClientGCIContext alignmentContext;
|
private ClientGSIContext alignmentContext;
|
||||||
|
|
||||||
public SpyConfiguredContextProxyProvider(
|
public SpyConfiguredContextProxyProvider(
|
||||||
Configuration conf, URI uri, Class<T> xface,
|
Configuration conf, URI uri, Class<T> xface,
|
||||||
@ -112,7 +112,7 @@ public SpyConfiguredContextProxyProvider(
|
|||||||
super(conf, uri, xface, factory);
|
super(conf, uri, xface, factory);
|
||||||
|
|
||||||
// Create but DON'T set in HAProxyFactory.
|
// Create but DON'T set in HAProxyFactory.
|
||||||
this.alignmentContext = (spy != null ? spy : new ClientGCIContext());
|
this.alignmentContext = (spy != null ? spy : new ClientGSIContext());
|
||||||
|
|
||||||
AC_LIST.add(alignmentContext);
|
AC_LIST.add(alignmentContext);
|
||||||
}
|
}
|
||||||
@ -180,7 +180,7 @@ public void testNoStateOnConfiguredProxyProvider() throws Exception {
|
|||||||
|
|
||||||
try (DistributedFileSystem clearDfs =
|
try (DistributedFileSystem clearDfs =
|
||||||
(DistributedFileSystem) FileSystem.get(confCopy)) {
|
(DistributedFileSystem) FileSystem.get(confCopy)) {
|
||||||
ClientGCIContext clientState = getContext(1);
|
ClientGSIContext clientState = getContext(1);
|
||||||
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
||||||
DFSTestUtil.writeFile(clearDfs, new Path("/testFileNoState"), "no_state");
|
DFSTestUtil.writeFile(clearDfs, new Path("/testFileNoState"), "no_state");
|
||||||
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
||||||
@ -231,7 +231,7 @@ public void testStateTransferOnFreshClient() throws Exception {
|
|||||||
cluster.getNamesystem(active).getLastWrittenTransactionId();
|
cluster.getNamesystem(active).getLastWrittenTransactionId();
|
||||||
try (DistributedFileSystem clearDfs =
|
try (DistributedFileSystem clearDfs =
|
||||||
(DistributedFileSystem) FileSystem.get(CONF)) {
|
(DistributedFileSystem) FileSystem.get(CONF)) {
|
||||||
ClientGCIContext clientState = getContext(1);
|
ClientGSIContext clientState = getContext(1);
|
||||||
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
assertThat(clientState.getLastSeenStateId(), is(Long.MIN_VALUE));
|
||||||
DFSTestUtil.readFile(clearDfs, new Path("/testFile3"));
|
DFSTestUtil.readFile(clearDfs, new Path("/testFile3"));
|
||||||
assertThat(clientState.getLastSeenStateId(), is(lastWrittenId));
|
assertThat(clientState.getLastSeenStateId(), is(lastWrittenId));
|
||||||
@ -244,8 +244,8 @@ public void testStateTransferOnFreshClient() throws Exception {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testClientSendsState() throws Exception {
|
public void testClientSendsState() throws Exception {
|
||||||
ClientGCIContext alignmentContext = new ClientGCIContext();
|
ClientGSIContext alignmentContext = new ClientGSIContext();
|
||||||
ClientGCIContext spiedAlignContext = Mockito.spy(alignmentContext);
|
ClientGSIContext spiedAlignContext = Mockito.spy(alignmentContext);
|
||||||
spy = spiedAlignContext;
|
spy = spiedAlignContext;
|
||||||
|
|
||||||
try (DistributedFileSystem clearDfs =
|
try (DistributedFileSystem clearDfs =
|
||||||
@ -286,8 +286,8 @@ public void testClientSendsState() throws Exception {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testClientSendsGreaterState() throws Exception {
|
public void testClientSendsGreaterState() throws Exception {
|
||||||
ClientGCIContext alignmentContext = new ClientGCIContext();
|
ClientGSIContext alignmentContext = new ClientGSIContext();
|
||||||
ClientGCIContext spiedAlignContext = Mockito.spy(alignmentContext);
|
ClientGSIContext spiedAlignContext = Mockito.spy(alignmentContext);
|
||||||
spy = spiedAlignContext;
|
spy = spiedAlignContext;
|
||||||
|
|
||||||
try (DistributedFileSystem clearDfs =
|
try (DistributedFileSystem clearDfs =
|
||||||
@ -377,7 +377,7 @@ public void testMultiClientStatesWithRandomFailovers() throws Exception {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClientGCIContext getContext(int clientCreationIndex) {
|
private ClientGSIContext getContext(int clientCreationIndex) {
|
||||||
return AC_LIST.get(clientCreationIndex);
|
return AC_LIST.get(clientCreationIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user