Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
402a277b
Commit
402a277b
authored
Mar 08, 2023
by
Vitaly Arbuzov
Browse files
Resize DB only once during RDB loading + rename variable
parent
0914e89a
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/rdb.c
View file @
402a277b
...
@@ -3003,7 +3003,7 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
...
@@ -3003,7 +3003,7 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
uint64_t dbid = 0;
uint64_t dbid = 0;
int type, rdbver;
int type, rdbver;
uint64_t db_size = 0;
uint64_t db_size = 0;
int
no_slot_info
= 1;
int
should_expand_db
= 1;
redisDb *db = rdb_loading_ctx->dbarray+0;
redisDb *db = rdb_loading_ctx->dbarray+0;
char buf[1024];
char buf[1024];
int error;
int error;
...
@@ -3098,7 +3098,7 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
...
@@ -3098,7 +3098,7 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
goto eoferr;
goto eoferr;
/* In cluster mode we resize individual slot specific dictionaries based on the number of keys that slot holds. */
/* In cluster mode we resize individual slot specific dictionaries based on the number of keys that slot holds. */
dictExpand(db->dict[slot_id], slot_size);
dictExpand(db->dict[slot_id], slot_size);
no_slot_info
= 0;
should_expand_db
= 0;
continue; /* Read next opcode. */
continue; /* Read next opcode. */
} else if (type == RDB_OPCODE_AUX) {
} else if (type == RDB_OPCODE_AUX) {
/* AUX: generic string-string fields. Use to add state to RDB
/* AUX: generic string-string fields. Use to add state to RDB
...
@@ -3230,8 +3230,9 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
...
@@ -3230,8 +3230,9 @@ int rdbLoadRioWithLoadingCtx(rio *rdb, int rdbflags, rdbSaveInfo *rsi, rdbLoadin
/* If there is no slot info, it means that it's either not cluster mode or we are trying to load legacy RDB file.
/* If there is no slot info, it means that it's either not cluster mode or we are trying to load legacy RDB file.
* In this case we want to estimate number of keys per slot and resize accordingly. */
* In this case we want to estimate number of keys per slot and resize accordingly. */
if (
no_slot_info
) {
if (
should_expand_db
) {
expandDb(db, db_size);
expandDb(db, db_size);
should_expand_db = 0;
}
}
/* Read key */
/* Read key */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment