Eviction process adjustments

pull/1249/head
Nikita
parent 882773409e
commit d08290233a

@ -64,6 +64,10 @@ abstract class EvictionTask implements Runnable {
}
Integer size = future.getNow();
if (size == -1) {
schedule();
return;
}
if (sizeHistory.size() == 2) {
if (sizeHistory.peekFirst() > sizeHistory.peekLast()

@ -56,9 +56,10 @@ public class MapCacheEvictionTask extends EvictionTask {
@Override
RFuture<Integer> execute() {
int latchExpireTime = Math.min(delay, 30);
return executor.evalWriteAsync(name, LongCodec.INSTANCE, RedisCommands.EVAL_INTEGER,
"if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then "
+ "return 0;"
+ "return -1;"
+ "end;"
+ "redis.call('expire', KEYS[6], ARGV[3]); "
+"local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); "
@ -99,7 +100,7 @@ public class MapCacheEvictionTask extends EvictionTask {
+ "end; "
+ "return #expiredKeys1 + #expiredKeys2;",
Arrays.<Object>asList(name, timeoutSetName, maxIdleSetName, expiredChannelName, lastAccessTimeSetName, executeTaskOnceLatchName),
System.currentTimeMillis(), keysLimit, delay, 1);
System.currentTimeMillis(), keysLimit, latchExpireTime, 1);
}
}

Loading…
Cancel
Save