use of org.apache.accumulo.server.manager.LiveTServerSet in project accumulo by apache.
the class GarbageCollectWriteAheadLogsTest method replicationDelaysFileCollection.
@Test
public void replicationDelaysFileCollection() throws Exception {
ServerContext context = EasyMock.createMock(ServerContext.class);
VolumeManager fs = EasyMock.createMock(VolumeManager.class);
WalStateManager marker = EasyMock.createMock(WalStateManager.class);
LiveTServerSet tserverSet = EasyMock.createMock(LiveTServerSet.class);
Scanner mscanner = EasyMock.createMock(Scanner.class);
Scanner rscanner = EasyMock.createMock(Scanner.class);
String row = ReplicationSection.getRowPrefix() + path;
String colf = ReplicationSection.COLF.toString();
String colq = "1";
Map<Key, Value> replicationWork = Collections.singletonMap(new Key(row, colf, colq), new Value());
GCStatus status = new GCStatus(null, null, null, new GcCycleStats());
tserverSet.scanServers();
EasyMock.expectLastCall();
EasyMock.expect(tserverSet.getCurrentServers()).andReturn(Collections.singleton(server1));
EasyMock.expect(marker.getAllMarkers()).andReturn(markers).once();
EasyMock.expect(marker.state(server1, id)).andReturn(new Pair<>(WalState.UNREFERENCED, path));
EasyMock.expect(context.createScanner(REPL_TABLE_NAME, Authorizations.EMPTY)).andReturn(rscanner);
rscanner.fetchColumnFamily(STATUS_SECTION_NAME);
EasyMock.expectLastCall().once();
EasyMock.expect(rscanner.iterator()).andReturn(emptyKV);
EasyMock.expect(context.createScanner(MetadataTable.NAME, Authorizations.EMPTY)).andReturn(mscanner);
mscanner.fetchColumnFamily(ReplicationSection.COLF);
EasyMock.expectLastCall().once();
mscanner.setRange(ReplicationSection.getRange());
EasyMock.expectLastCall().once();
EasyMock.expect(mscanner.iterator()).andReturn(replicationWork.entrySet().iterator());
EasyMock.replay(context, fs, marker, tserverSet, rscanner, mscanner);
GarbageCollectWriteAheadLogs gc = new GarbageCollectWriteAheadLogs(context, fs, false, tserverSet, marker, tabletOnServer1List) {
@Override
protected Map<UUID, Path> getSortedWALogs() {
return Collections.emptyMap();
}
};
gc.collect(status);
EasyMock.verify(context, fs, marker, tserverSet, rscanner, mscanner);
}
use of org.apache.accumulo.server.manager.LiveTServerSet in project accumulo by apache.
the class GarbageCollectWriteAheadLogsTest method ignoreReferenceLogOnDeadServer.
@Test
public void ignoreReferenceLogOnDeadServer() throws Exception {
ServerContext context = EasyMock.createMock(ServerContext.class);
VolumeManager fs = EasyMock.createMock(VolumeManager.class);
WalStateManager marker = EasyMock.createMock(WalStateManager.class);
LiveTServerSet tserverSet = EasyMock.createMock(LiveTServerSet.class);
Scanner mscanner = EasyMock.createMock(Scanner.class);
Scanner rscanner = EasyMock.createMock(Scanner.class);
GCStatus status = new GCStatus(null, null, null, new GcCycleStats());
tserverSet.scanServers();
EasyMock.expectLastCall();
EasyMock.expect(tserverSet.getCurrentServers()).andReturn(Collections.singleton(server1));
EasyMock.expect(marker.getAllMarkers()).andReturn(markers2).once();
EasyMock.expect(marker.state(server2, id)).andReturn(new Pair<>(WalState.OPEN, path));
EasyMock.expect(context.createScanner(REPL_TABLE_NAME, Authorizations.EMPTY)).andReturn(rscanner);
rscanner.fetchColumnFamily(STATUS_SECTION_NAME);
EasyMock.expectLastCall().once();
EasyMock.expect(rscanner.iterator()).andReturn(emptyKV);
EasyMock.expect(context.createScanner(MetadataTable.NAME, Authorizations.EMPTY)).andReturn(mscanner);
mscanner.fetchColumnFamily(ReplicationSection.COLF);
EasyMock.expectLastCall().once();
mscanner.setRange(ReplicationSection.getRange());
EasyMock.expectLastCall().once();
EasyMock.expect(mscanner.iterator()).andReturn(emptyKV);
EasyMock.replay(context, fs, marker, tserverSet, rscanner, mscanner);
GarbageCollectWriteAheadLogs gc = new GarbageCollectWriteAheadLogs(context, fs, false, tserverSet, marker, tabletOnServer2List) {
@Override
protected Map<UUID, Path> getSortedWALogs() {
return Collections.emptyMap();
}
};
gc.collect(status);
EasyMock.verify(context, fs, marker, tserverSet, rscanner, mscanner);
}
use of org.apache.accumulo.server.manager.LiveTServerSet in project accumulo by apache.
the class GarbageCollectWriteAheadLogsTest method testKeepClosedLog.
@Test
public void testKeepClosedLog() throws Exception {
ServerContext context = EasyMock.createMock(ServerContext.class);
VolumeManager fs = EasyMock.createMock(VolumeManager.class);
WalStateManager marker = EasyMock.createMock(WalStateManager.class);
LiveTServerSet tserverSet = EasyMock.createMock(LiveTServerSet.class);
GCStatus status = new GCStatus(null, null, null, new GcCycleStats());
tserverSet.scanServers();
EasyMock.expectLastCall();
EasyMock.expect(tserverSet.getCurrentServers()).andReturn(Collections.singleton(server1));
EasyMock.expect(marker.getAllMarkers()).andReturn(markers).once();
EasyMock.expect(marker.state(server1, id)).andReturn(new Pair<>(WalState.CLOSED, path));
EasyMock.replay(context, marker, tserverSet, fs);
GarbageCollectWriteAheadLogs gc = new GarbageCollectWriteAheadLogs(context, fs, false, tserverSet, marker, tabletOnServer1List) {
@Override
@Deprecated
protected int removeReplicationEntries(Map<UUID, TServerInstance> candidates) {
return 0;
}
@Override
protected Map<UUID, Path> getSortedWALogs() {
return Collections.emptyMap();
}
};
gc.collect(status);
EasyMock.verify(context, marker, tserverSet, fs);
}
Aggregations