@Override public Pair<Integer, Long> evictEntries(long sizeToFree) { checkArgument(sizeToFree > 0); Pair<Integer, Long> evicted = entries.evictLeastAccessedEntries(sizeToFree); int evictedEntries = evicted.getLeft(); long evictedSize = evicted.getRight(); if (log.isDebugEnabled()) { log.debug( "[{}] Doing cache eviction of at least {} Mb -- Deleted {} entries - Total size deleted: {} Mb " + " -- Current Size: {} Mb", ml.getName(), sizeToFree / MB, evictedEntries, evictedSize / MB, entries.getSize() / MB); } manager.entriesRemoved(evictedSize); return evicted; }
Pair<Integer, Long> res = cache.evictLeastAccessedEntries(1); assertEquals((int) res.getLeft(), 1); assertEquals((long) res.getRight(), 1); assertEquals(cache.getSize(), 99); res = cache.evictLeastAccessedEntries(10); assertEquals((int) res.getLeft(), 10); assertEquals((long) res.getRight(), 10); assertEquals(cache.getSize(), 89); res = cache.evictLeastAccessedEntries(100); assertEquals((int) res.getLeft(), 89); assertEquals((long) res.getRight(), 89);
assertEquals(cache.evictLeastAccessedEntries(5), Pair.of(2, (long) 7)); assertEquals(cache.get(3).s, "three"); assertEquals(cache.evictLeastAccessedEntries(100), Pair.of(2, (long) 8)); assertEquals(cache.getNumberOfEntries(), 0); assertEquals(cache.getSize(), 0); cache.evictLeastAccessedEntries(0); fail("should throw exception"); } catch (IllegalArgumentException e) { cache.evictLeastAccessedEntries(-1); fail("should throw exception"); } catch (IllegalArgumentException e) {
@Override public Pair<Integer, Long> evictEntries(long sizeToFree) { checkArgument(sizeToFree > 0); Pair<Integer, Long> evicted = entries.evictLeastAccessedEntries(sizeToFree); int evictedEntries = evicted.getLeft(); long evictedSize = evicted.getRight(); if (log.isDebugEnabled()) { log.debug( "[{}] Doing cache eviction of at least {} Mb -- Deleted {} entries - Total size deleted: {} Mb " + " -- Current Size: {} Mb", ml.getName(), sizeToFree / MB, evictedEntries, evictedSize / MB, entries.getSize() / MB); } manager.entriesRemoved(evictedSize); return evicted; }
@Override public Pair<Integer, Long> evictEntries(long sizeToFree) { checkArgument(sizeToFree > 0); Pair<Integer, Long> evicted = entries.evictLeastAccessedEntries(sizeToFree); int evictedEntries = evicted.first; long evictedSize = evicted.second; if (log.isDebugEnabled()) { log.debug( "[{}] Doing cache eviction of at least {} Mb -- Deleted {} entries - Total size deleted: {} Mb " + " -- Current Size: {} Mb", ml.getName(), sizeToFree / MB, evictedEntries, evictedSize / MB, entries.getSize() / MB); } manager.entriesRemoved(evictedSize); return evicted; }