diff options
author | antirez <antirez@gmail.com> | 2013-08-06 12:36:13 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-08-06 15:36:31 +0200 |
commit | 8686a70303d101210b82e93afc597f69f128ceb9 (patch) | |
tree | b476f5537bda8739a70fe48835cc62354ab5f753 | |
parent | d54e373b8477cf4cb2c1a18fee98fc626f3f77ca (diff) | |
download | redis-8686a70303d101210b82e93afc597f69f128ceb9.tar.gz |
Remove dead code and fix comments for new expire code.
-rw-r--r-- | src/redis.c | 66 |
1 files changed, 10 insertions, 56 deletions
diff --git a/src/redis.c b/src/redis.c index 12cbb082d..bec3aac39 100644 --- a/src/redis.c +++ b/src/redis.c @@ -665,12 +665,14 @@ int activeExpireCycleTryExpire(redisDb *db, struct dictEntry *de, long long now) * No more than REDIS_DBCRON_DBS_PER_CALL databases are tested at every * iteration. * - * If fast is non-zero the function will try to expire just one key ASAP - * from the current DB and return. This kind of call is used when Redis detects - * that timelimit_exit is true, so there is more work to do, and we do it - * more incrementally from the beforeSleep() function of the event loop. */ + * If fast is non-zero the function will try to run a "fast" expire cycle that + * takes no longer than EXPIRE_FAST_CYCLE_DURATION microseconds, and is not + * repeated again before the same amount of time. + * + * This kind of call is used when Redis detects that timelimit_exit is + * true, so there is more work to do, and we do it more incrementally from + * the beforeSleep() function of the event loop. */ -#define EXPIRED_HISTORY_LEN 10 #define EXPIRE_FAST_CYCLE_DURATION 1000 void activeExpireCycle(int fast) { @@ -684,41 +686,15 @@ void activeExpireCycle(int fast) { long long start = ustime(), timelimit; static long long last_fast_cycle = 0; -#if 0 - static int expired_history[EXPIRED_HISTORY_LEN]; - static int expired_history_id = 0; - static int expired_perc_avg = 0; -#endif - if (fast) { /* Don't start a fast cycle if the previous cycle did not exited * for time limt. Also don't repeat a fast cycle for the same period * as the fast cycle total duration itself. */ if (!timelimit_exit) return; - if (start < last_fast_cycle + EXPIRE_FAST_CYCLE_DURATION) { - printf("CANT START A FAST CYCLE\n"); - return; - } + if (start < last_fast_cycle + EXPIRE_FAST_CYCLE_DURATION) return; last_fast_cycle = start; } -#if 0 - if (fast) { - if (!timelimit_exit) return; - - /* Let's try to expire a single key from the previous DB, the one that - * had enough keys expiring to reach the time limit. */ - redisDb *db = server.db+((current_db+server.dbnum-1) % server.dbnum); - dictEntry *de; - - for (j = 0; j < 100; j++) { - if ((de = dictGetRandomKey(db->expires)) == NULL) break; - activeExpireCycleTryExpire(db,de,server.mstime); - } - return; - } -#endif - /* We usually should test REDIS_DBCRON_DBS_PER_CALL per iteration, with * two exceptions: * @@ -785,19 +761,6 @@ void activeExpireCycle(int fast) { { timelimit_exit = 1; } -#if 0 - expired_history_id = (expired_history_id+1) % EXPIRED_HISTORY_LEN; - expired_history[expired_history_id] = expired; - { - int i; - expired_perc_avg = 0; - for (i = 0; i < EXPIRED_HISTORY_LEN; i++) { - expired_perc_avg += expired_history[i]; - } - expired_perc_avg = (expired_perc_avg * 100) / (REDIS_EXPIRELOOKUPS_PER_CRON*EXPIRED_HISTORY_LEN); - // printf("Expired AVG: %d\n", expired_perc_avg); - } -#endif if (timelimit_exit) return; } while (expired > REDIS_EXPIRELOOKUPS_PER_CRON/4); } @@ -918,12 +881,8 @@ void clientsCron(void) { void databasesCron(void) { /* Expire keys by random sampling. Not required for slaves * as master will synthesize DELs for us. */ - if (server.active_expire_enabled && server.masterhost == NULL) { - long long totalex = server.stat_expiredkeys; + if (server.active_expire_enabled && server.masterhost == NULL) activeExpireCycle(0); - if (server.stat_expiredkeys - totalex) - printf("EXPIRED SLOW: %lld\n", server.stat_expiredkeys - totalex); - } /* Perform hash tables rehashing if needed, but only if there are no * other processes saving the DB on disk. Otherwise rehashing is bad @@ -1156,12 +1115,7 @@ void beforeSleep(struct aeEventLoop *eventLoop) { redisClient *c; /* Run a fast expire cycle. */ - { - long long totalex = server.stat_expiredkeys; - activeExpireCycle(1); - if (server.stat_expiredkeys - totalex) - printf("EXPIRED FAST: %lld\n", server.stat_expiredkeys - totalex); - } + activeExpireCycle(1); /* Try to process pending commands for clients that were just unblocked. */ while (listLength(server.unblocked_clients)) { |