mirror of
https://github.com/fluencelabs/redis
synced 2025-06-19 20:21:21 +00:00
better swapout policy while loading RDB file
This commit is contained in:
7
redis.c
7
redis.c
@ -4076,6 +4076,7 @@ static int rdbLoad(char *filename) {
|
|||||||
}
|
}
|
||||||
while(1) {
|
while(1) {
|
||||||
robj *key, *val;
|
robj *key, *val;
|
||||||
|
int force_swapout;
|
||||||
|
|
||||||
expiretime = -1;
|
expiretime = -1;
|
||||||
/* Read type. */
|
/* Read type. */
|
||||||
@ -4140,9 +4141,13 @@ static int rdbLoad(char *filename) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
force_swapout = 0;
|
||||||
|
if ((zmalloc_used_memory() - server.vm_max_memory) > 1024*1024*32)
|
||||||
|
force_swapout = 1;
|
||||||
|
|
||||||
/* If we have still some hope of having some value fitting memory
|
/* If we have still some hope of having some value fitting memory
|
||||||
* then we try random sampling. */
|
* then we try random sampling. */
|
||||||
if (!swap_all_values && server.vm_enabled && (loadedkeys % 5000) == 0) {
|
if (!swap_all_values && server.vm_enabled && force_swapout) {
|
||||||
while (zmalloc_used_memory() > server.vm_max_memory) {
|
while (zmalloc_used_memory() > server.vm_max_memory) {
|
||||||
if (vmSwapOneObjectBlocking() == REDIS_ERR) break;
|
if (vmSwapOneObjectBlocking() == REDIS_ERR) break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user