rehash: handle one db until finished

This commit is contained in:
zhaozhao.zz 2017-11-18 01:21:39 +08:00 committed by antirez
parent cf9a3f7048
commit 57bd8feb8d

View File

@ -908,12 +908,15 @@ void databasesCron(void) {
/* Rehash */ /* Rehash */
if (server.activerehashing) { if (server.activerehashing) {
for (j = 0; j < dbs_per_call; j++) { for (j = 0; j < dbs_per_call; j++) {
int work_done = incrementallyRehash(rehash_db % server.dbnum); int work_done = incrementallyRehash(rehash_db);
rehash_db++;
if (work_done) { if (work_done) {
/* If the function did some work, stop here, we'll do /* If the function did some work, stop here, we'll do
* more at the next cron loop. */ * more at the next cron loop. */
break; break;
} else {
/* If this db didn't need rehash, we'll try the next one. */
rehash_db++;
rehash_db %= server.dbnum;
} }
} }
} }