@Test public void testBasicEviction() throws Exception { final int maxCached = 5; List<LogSegment> segments = prepareSegments(5, new boolean[]{true, true, true, true, true}, 0, 10);
final int maxCachedNum = RaftServerConfigKeys.Log.maxCachedSegmentNum(prop); File storageDir = getTestDir(); RaftServerConfigKeys.setStorageDirs(prop, Collections.singletonList(storageDir)); RaftStorage storage = new RaftStorage(storageDir, RaftServerConstants.StartupOption.REGULAR); raftLog.open(RaftServerConstants.INVALID_LOG_INDEX, null); List<SegmentRange> slist = TestSegmentedRaftLog.prepareRanges(0, maxCachedNum, 7, 0); LogEntryProto[] entries = generateEntries(slist); raftLog.append(entries).forEach(CompletableFuture::join); Mockito.when(state.getLastAppliedIndex()).thenReturn(35L); slist = TestSegmentedRaftLog.prepareRanges(maxCachedNum, maxCachedNum + 2, 7, 7 * maxCachedNum); entries = generateEntries(slist); raftLog.append(entries).forEach(CompletableFuture::join);
final int maxCachedNum = RaftServerConfigKeys.Log.maxCachedSegmentNum(prop); File storageDir = getTestDir(); RaftServerConfigKeys.setStorageDir(prop, storageDir); RaftStorage storage = new RaftStorage(storageDir, RaftServerConstants.StartupOption.REGULAR); raftLog.open(RaftServerConstants.INVALID_LOG_INDEX, null); List<SegmentRange> slist = TestSegmentedRaftLog.prepareRanges(maxCachedNum, 7, 0); LogEntryProto[] entries = generateEntries(slist); raftLog.append(entries).forEach(CompletableFuture::join); Mockito.when(state.getLastAppliedIndex()).thenReturn(35L); slist = TestSegmentedRaftLog.prepareRanges(2, 7, 7 * maxCachedNum); entries = generateEntries(slist); raftLog.append(entries).forEach(CompletableFuture::join);
@Test public void testEvictionWithFollowerIndices() throws Exception { final int maxCached = 6; List<LogSegment> segments = prepareSegments(6, new boolean[]{true, true, true, true, true, true}, 0, 10);
@Test public void testBasicEviction() throws Exception { final int maxCached = 5; final LogSegmentList segments = prepareSegments(5, new boolean[]{true, true, true, true, true}, 0, 10);
@Test public void testEvictionWithFollowerIndices() throws Exception { final int maxCached = 6; final LogSegmentList segments = prepareSegments(6, new boolean[]{true, true, true, true, true, true}, 0, 10);