MCPcopy Create free account
hub / github.com/F-Stack/f-stack / defragHash

Function defragHash

app/redis-6.2.6/src/defrag.c:595–611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

593}
594
595long defragHash(redisDb *db, dictEntry *kde) {
596 long defragged = 0;
597 robj *ob = dictGetVal(kde);
598 dict *d, *newd;
599 serverAssert(ob->type == OBJ_HASH && ob->encoding == OBJ_ENCODING_HT);
600 d = ob->ptr;
601 if (dictSize(d) > server.active_defrag_max_scan_fields)
602 defragLater(db, kde);
603 else
604 defragged += activeDefragSdsDict(d, DEFRAG_SDS_DICT_VAL_IS_SDS);
605 /* handle the dict struct */
606 if ((newd = activeDefragAlloc(ob->ptr)))
607 defragged++, ob->ptr = newd;
608 /* defrag the dict tables */
609 defragged += dictDefragTables(ob->ptr);
610 return defragged;
611}
612
613long defragSet(redisDb *db, dictEntry *kde) {
614 long defragged = 0;

Callers 1

defragKeyFunction · 0.85

Calls 4

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

Tested by

no test coverage detected