MVCC Perf fixes

Former-commit-id: 5a4afe5fb4231bec34d434f9e3214a7320842091
This commit is contained in:
John Sully 2020-08-10 05:45:56 +00:00
parent 3c1e63fa74
commit 85d7a4c1e2
2 changed files with 8 additions and 3 deletions

View File

@ -101,7 +101,12 @@ static robj* lookupKey(redisDb *db, robj *key, int flags) {
}
static robj_roptr lookupKeyConst(redisDb *db, robj *key, int flags) {
serverAssert((flags & LOOKUP_UPDATEMVCC) == 0);
robj_roptr val = db->find(szFromObj(key));
robj_roptr val;
if (g_pserver->m_pstorageFactory)
val = db->find(szFromObj(key)).val();
else
val = db->find_cached_threadsafe(szFromObj(key)).val();
if (val != nullptr) {
lookupKeyUpdateObj(val.unsafe_robjcast(), flags);
return val;
@ -2333,10 +2338,12 @@ bool redisDbPersistentData::insert(char *key, robj *o, bool fAssumeNew)
serverAssert(FImplies(fAssumeNew, res == DICT_OK));
if (res == DICT_OK)
{
#ifdef CHECKED_BUILD
if (m_pdbSnapshot != nullptr && m_pdbSnapshot->find_cached_threadsafe(key) != nullptr)
{
serverAssert(dictFind(m_pdictTombstone, key) != nullptr);
}
#endif
trackkey(key, false /* fUpdate */);
}
return (res == DICT_OK);

View File

@ -1,8 +1,6 @@
#ifndef __STORAGE_H__
#define __STORAGE_H__
#define OBJ_ENCODING_EMBSTR_SIZE_LIMIT 48 // Note: also defined in object.c - should always match
#ifdef __cplusplus
extern "C" {
#endif