Eliminate needless lock

Former-commit-id: 60f972d463f202edb33ff9a25bc2bd3e2558105c
This commit is contained in:
John Sully 2021-02-26 05:40:56 +00:00
parent 807d311a3b
commit bfbdf23b1a
3 changed files with 4 additions and 6 deletions

View File

@ -2834,9 +2834,9 @@ bool redisDbPersistentData::removeCachedValue(const char *key)
void redisDbPersistentData::trackChanges(bool fBulk) void redisDbPersistentData::trackChanges(bool fBulk)
{ {
m_fTrackingChanges++; m_fTrackingChanges.fetch_add(1, std::memory_order_relaxed);
if (fBulk) if (fBulk)
m_fAllChanged++; m_fAllChanged.fetch_add(1, std::memory_order_acq_rel);
} }
void redisDbPersistentData::removeAllCachedValues() void redisDbPersistentData::removeAllCachedValues()

View File

@ -2650,10 +2650,8 @@ void afterSleep(struct aeEventLoop *eventLoop) {
serverAssert(serverTL->gcEpoch.isReset()); serverAssert(serverTL->gcEpoch.isReset());
serverTL->gcEpoch = g_pserver->garbageCollector.startEpoch(); serverTL->gcEpoch = g_pserver->garbageCollector.startEpoch();
aeAcquireLock();
for (int idb = 0; idb < cserver.dbnum; ++idb) for (int idb = 0; idb < cserver.dbnum; ++idb)
g_pserver->db[idb]->trackChanges(false); g_pserver->db[idb]->trackChanges(false);
aeReleaseLock();
} }
/* =========================== Server initialization ======================== */ /* =========================== Server initialization ======================== */

View File

@ -1172,8 +1172,8 @@ private:
// Keyspace // Keyspace
dict *m_pdict = nullptr; /* The keyspace for this DB */ dict *m_pdict = nullptr; /* The keyspace for this DB */
dict *m_pdictTombstone = nullptr; /* Track deletes when we have a snapshot */ dict *m_pdictTombstone = nullptr; /* Track deletes when we have a snapshot */
int m_fTrackingChanges = 0; // Note: Stack based std::atomic<int> m_fTrackingChanges {0}; // Note: Stack based
int m_fAllChanged = 0; std::atomic<int> m_fAllChanged {0};
std::set<changedesc, changedescCmp> m_setchanged; std::set<changedesc, changedescCmp> m_setchanged;
size_t m_cnewKeysPending = 0; size_t m_cnewKeysPending = 0;
std::shared_ptr<StorageCache> m_spstorage = nullptr; std::shared_ptr<StorageCache> m_spstorage = nullptr;