Details
-
Improvement
-
Resolution: Fixed
-
Major
-
5.5.0
Description
StoredValue uses a TaggedPtr to store both the (pointer to) Blob, and the 16bit frequency counter, whch in turn is managed by a SingleThreadedRCPtr. This allows us to store both the ref-counted pointer and frequency counter in 64bits.
However, to update the frequency counter we must reset() the RCPtr, which requires (atomically) incrementing and then decrementing it's refcount. This is unnecessary costly work.
Attachments
For Gerrit Dashboard: MB-30463 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
96844,7 | MB-30463: HashTableBench: Add 'Find' benchmark | master | kv_engine | Status: MERGED | +2 | +1 |
96849,6 | MB-30463: Avoid modifying ptr refcounts when setting freqCounterValue | master | kv_engine | Status: MERGED | +2 | +1 |