From eaaff16cca95ff5eb4bf2d4d9bb27f32a0b166bd Mon Sep 17 00:00:00 2001 From: John Sully Date: Mon, 3 May 2021 04:15:46 +0000 Subject: [PATCH] Don't sync too often it hurts perf Former-commit-id: a20e89a457a0a682483c22f0f1cdb5c93c574d28 --- src/rdb.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rdb.cpp b/src/rdb.cpp index d969b4f54..2191f7bd8 100644 --- a/src/rdb.cpp +++ b/src/rdb.cpp @@ -2545,7 +2545,8 @@ void rdbLoadProgressCallback(rio *r, const void *buf, size_t len) { (r->keys_since_last_callback >= g_pserver->loading_process_events_interval_keys))) { rdbAsyncWorkThread *pwthread = reinterpret_cast(r->chksum_arg); - pwthread->endWork(); // We can't have the work queue modifying the database while processEventsWhileBlocked does its thing + if (pwthread && g_pserver->fActiveReplica) + pwthread->endWork(); // We can't have the work queue modifying the database while processEventsWhileBlocked does its thing listIter li; listNode *ln; listRewind(g_pserver->masters, &li); @@ -2564,7 +2565,8 @@ void rdbLoadProgressCallback(rio *r, const void *buf, size_t len) { ping_argv[0] = createStringObject("PING",4); replicationFeedSlaves(g_pserver->slaves, g_pserver->replicaseldb, ping_argv, 1); decrRefCount(ping_argv[0]); - pwthread->start(); + if (pwthread && g_pserver->fActiveReplica) + pwthread->start(); r->keys_since_last_callback = 0; }