Skip to content

Commit

Permalink
Merge branch 'master' into fix-migration-test
Browse files Browse the repository at this point in the history
  • Loading branch information
tezc committed Jan 18, 2023
2 parents e25dbd6 + 305b7a1 commit bc220a1
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 8 deletions.
2 changes: 2 additions & 0 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ static const char *trace_names[] = {
"raftlib",
"raftlog",
"generic",
"migration",
"all",
};

Expand All @@ -37,6 +38,7 @@ static const int trace_flags[] = {
TRACE_RAFTLIB,
TRACE_RAFTLOG,
TRACE_GENERIC,
TRACE_MIGRATION,
TRACE_ALL,
};

Expand Down
7 changes: 6 additions & 1 deletion src/raft.c
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ static void lockKeys(RedisRaftCtx *rr, raft_entry_t *entry)
if (RedisModule_KeyExists(rr->ctx, keys[i])) {
size_t str_len;
const char *str = RedisModule_StringPtrLen(keys[i], &str_len);
LOG_VERBOSE("locking %.*s", (int) str_len, str);
MIGRATION_TRACE("Locking key: %.*s", (int) str_len, str);

RedisModule_DictSet(rr->locked_keys, keys[i], NULL);
}
Expand Down Expand Up @@ -533,6 +533,11 @@ static void unlockDeleteKeys(RedisRaftCtx *rr, raft_entry_t *entry)
RedisModule_FreeCallReply(reply);

for (size_t i = 0; i < num_keys; i++) {
size_t str_len;
const char *str = RedisModule_StringPtrLen(keys[i], &str_len);

MIGRATION_TRACE("Unlocking key: %.*s", (int) str_len, str);

RedisModule_DictDel(rr->locked_keys, keys[i], NULL);
RedisModule_FreeString(rr->ctx, keys[i]);
}
Expand Down
18 changes: 11 additions & 7 deletions src/redisraft.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,14 @@ extern RedisModuleCtx *redisraft_log_ctx;
#define LOG_LEVEL_WARNING 3
#define LOG_LEVEL_COUNT (LOG_LEVEL_WARNING + 1)

#define TRACE_OFF 0
#define TRACE_NODE 1
#define TRACE_CONN 2
#define TRACE_RAFTLIB 4
#define TRACE_RAFTLOG 8
#define TRACE_GENERIC 16
#define TRACE_ALL ((TRACE_GENERIC * 2) - 1)
#define TRACE_OFF 0
#define TRACE_NODE (1 << 0)
#define TRACE_CONN (1 << 1)
#define TRACE_RAFTLIB (1 << 2)
#define TRACE_RAFTLOG (1 << 3)
#define TRACE_GENERIC (1 << 4)
#define TRACE_MIGRATION (1 << 5)
#define TRACE_ALL ((TRACE_MIGRATION * 2) - 1)

#define LOG(level, fmt, ...) \
do { \
Expand Down Expand Up @@ -123,6 +124,9 @@ extern RedisModuleCtx *redisraft_log_ctx;
#define NODE_LOG_NOTICE(node, fmt, ...) NODE_LOG(LOG_LEVEL_NOTICE, node, fmt, ##__VA_ARGS__)
#define NODE_LOG_WARNING(node, fmt, ...) NODE_LOG(LOG_LEVEL_WARNING, node, fmt, ##__VA_ARGS__)

#define MIGRATION_TRACE(fmt, ...) \
TRACE_MODULE(MIGRATION, "<migration> " fmt, ##__VA_ARGS__)

/* -------------------- Connections -------------------- */

/* Longest length of a NodeAddr string, including null terminator */
Expand Down
8 changes: 8 additions & 0 deletions src/snapshot.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,13 +598,20 @@ static void lockedKeysRDBLoad(RedisModuleIO *rdb)
RedisRaftCtx *rr = &redis_raft;
size_t count = RedisModule_LoadUnsigned(rdb);

MIGRATION_TRACE("Rebuilding locked_keys dict from RDB");

if (rr->locked_keys) {
RedisModule_FreeDict(rr->ctx, rr->locked_keys);
}
rr->locked_keys = RedisModule_CreateDict(rr->ctx);

for (size_t i = 0; i < count; i++) {
RedisModuleString *key = RedisModule_LoadString(rdb);

size_t len;
const char *str = RedisModule_StringPtrLen(key, &len);
MIGRATION_TRACE("Loading key to locked_keys from RDB: %.*s ", (int) len, str);

RedisModule_DictSet(rr->locked_keys, key, NULL);
RedisModule_FreeString(NULL, key);
}
Expand Down Expand Up @@ -701,6 +708,7 @@ static void lockedKeysRDBSave(RedisModuleIO *rdb)
size_t key_len;

while ((key = RedisModule_DictNextC(iter, &key_len, NULL)) != NULL) {
MIGRATION_TRACE("Saving locked key to RDB: %.*s", (int) key_len, key);
RedisModule_SaveStringBuffer(rdb, key, key_len);
}
RedisModule_DictIteratorStop(iter);
Expand Down

0 comments on commit bc220a1

Please sign in to comment.