client lock for fast sync replbuffer, delay fast sync for next replication cron

Former-commit-id: 9fe7f8328d66f9ec57060934462ad85ef60c36aa
This commit is contained in:
malavan 2021-11-26 17:46:41 +00:00
parent bbb565abb0
commit 55cc6f797a

View File

@ -975,6 +975,7 @@ public:
aeAcquireLock();
}
std::unique_lock<fastlock> lock(replica->lock);
addReplyProto(replica, reply->buf(), reply->used);
}
ProcessPendingAsyncWrites();
@ -1380,7 +1381,7 @@ void syncCommand(client *c) {
/* CASE 0: Fast Sync */
if ((c->slave_capa & SLAVE_CAPA_ROCKSDB_SNAPSHOT) && g_pserver->m_pstorageFactory) {
startBgsaveForReplication(c->slave_capa);
serverLog(LL_NOTICE,"Fast SYNC on next replication cycle");
/* CASE 1: BGSAVE is in progress, with disk target. */
} else if (g_pserver->FRdbSaveInProgress() &&
g_pserver->rdb_child_type == RDB_CHILD_TYPE_DISK)