diff options
author | Oran Agra <oran@redislabs.com> | 2021-02-01 20:11:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-01 20:11:42 +0200 |
commit | 2dba1e391d3772a8da182d95bde050ffa9d01e4d (patch) | |
tree | 3664bcd3ede605643a18668624f41c846b5e43ab /src/expire.c | |
parent | ec2d180739aa3877a45ec54438c68a7659be5159 (diff) | |
parent | 95338f9cc41fdfd050f122789187db75fda1fe3c (diff) | |
download | redis-6.2-rc3.tar.gz |
Merge 6.2 RC36.2-rc3
Diffstat (limited to 'src/expire.c')
-rw-r--r-- | src/expire.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/expire.c b/src/expire.c index 275a735a7..f79510817 100644 --- a/src/expire.c +++ b/src/expire.c @@ -53,15 +53,19 @@ * to the function to avoid too many gettimeofday() syscalls. */ int activeExpireCycleTryExpire(redisDb *db, dictEntry *de, long long now) { long long t = dictGetSignedIntegerVal(de); + mstime_t expire_latency; if (now > t) { sds key = dictGetKey(de); robj *keyobj = createStringObject(key,sdslen(key)); propagateExpire(db,keyobj,server.lazyfree_lazy_expire); + latencyStartMonitor(expire_latency); if (server.lazyfree_lazy_expire) dbAsyncDelete(db,keyobj); else dbSyncDelete(db,keyobj); + latencyEndMonitor(expire_latency); + latencyAddSampleIfNeeded("expire-del",expire_latency); notifyKeyspaceEvent(NOTIFY_EXPIRED, "expired",keyobj,db->id); signalModifiedKey(NULL, db, keyobj); @@ -224,7 +228,7 @@ void activeExpireCycle(int type) { /* When there are less than 1% filled slots, sampling the key * space is expensive, so stop here waiting for better times... * The dictionary will be resized asap. */ - if (num && slots > DICT_HT_INITIAL_SIZE && + if (slots > DICT_HT_INITIAL_SIZE && (num*100/slots < 1)) break; /* The main collection cycle. Sample random keys among keys |