mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 00:28:26 -05:00
better swapout policy while loading RDB file
This commit is contained in:
parent
356f923913
commit
7e02fe32d3
7
redis.c
7
redis.c
@ -4120,6 +4120,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. */
|
||||||
@ -4184,9 +4185,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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user