void evictCache(long[] followerIndices, long flushedIndex, long lastAppliedIndex) { List<LogSegment> toEvict = evictionPolicy.evict(followerIndices, flushedIndex, lastAppliedIndex, closedSegments, maxCachedSegments); for (LogSegment s : toEvict) { s.evictCache(); } }
void evictCache(long[] followerIndices, long flushedIndex, long lastAppliedIndex) { List<LogSegment> toEvict = evictionPolicy.evict(followerIndices, flushedIndex, lastAppliedIndex, closedSegments, maxCachedSegments); for (LogSegment s : toEvict) { s.evictCache(); } }
List<LogSegment> evicted = policy.evict(null, 5, 15, segments, maxCached); Assert.assertEquals(0, evicted.size()); evicted = policy.evict(null, 25, 30, segments, maxCached); Assert.assertEquals(2, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(null, 25, 15, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(2)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(1)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(0, evicted.size());
List<LogSegment> evicted = policy.evict(new long[]{20, 40, 40}, 5, 15, segments, maxCached); Assert.assertEquals(0, evicted.size()); evicted = policy.evict(new long[]{30, 40, 45}, 25, 30, segments, maxCached); Assert.assertEquals(2, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{30, 40, 45}, 25, 15, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(2)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(3)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(0, evicted.size());
List<LogSegment> evicted = policy.evict(null, 5, 15, segments, maxCached); Assert.assertEquals(0, evicted.size()); evicted = policy.evict(null, 25, 30, segments, maxCached); Assert.assertEquals(2, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(null, 25, 15, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(2)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(1)); evicted = policy.evict(null, 35, 5, segments, maxCached); Assert.assertEquals(0, evicted.size());
List<LogSegment> evicted = policy.evict(new long[]{20, 40, 40}, 5, 15, segments, maxCached); Assert.assertEquals(0, evicted.size()); evicted = policy.evict(new long[]{30, 40, 45}, 25, 30, segments, maxCached); Assert.assertEquals(2, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{30, 40, 45}, 25, 15, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(0)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(2)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(1, evicted.size()); Assert.assertSame(evicted.get(0), segments.get(3)); evicted = policy.evict(new long[]{15, 45, 45}, 55, 50, segments, maxCached); Assert.assertEquals(0, evicted.size());