MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / defragHash

Function defragHash

src/defrag.cpp:618–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

616}
617
618long defragHash(redisDb *db, dictEntry *kde) {
619 long defragged = 0;
620 robj *ob = (robj*)dictGetVal(kde);
621 dict *d, *newd;
622 serverAssert(ob->type == OBJ_HASH && ob->encoding == OBJ_ENCODING_HT);
623 d = (dict*)ptrFromObj(ob);
624 if (dictSize(d) > cserver.active_defrag_max_scan_fields)
625 defragLater(db, kde);
626 else
627 defragged += activeDefragSdsDict(d, DEFRAG_SDS_DICT_VAL_IS_SDS);
628 /* handle the dict struct */
629 if ((newd = (dict*)activeDefragAlloc(ptrFromObj(ob))))
630 defragged++, ob->m_ptr = newd;
631 /* defrag the dict tables */
632 defragged += dictDefragTables((dict*)ptrFromObj(ob));
633 return defragged;
634}
635
636long defragSet(redisDb *db, dictEntry *kde) {
637 long defragged = 0;

Callers 1

defragKeyFunction · 0.85

Calls 5

ptrFromObjFunction · 0.85
defragLaterFunction · 0.85
activeDefragSdsDictFunction · 0.85
activeDefragAllocFunction · 0.85
dictDefragTablesFunction · 0.85

Tested by

no test coverage detected