dfb6fe6755
Summary: This PR is based on nbronson's diff with small modifications to wire it up with existing interface. Comparing to previous version, this approach works better for inserting keys in decreasing order or updating the same key, and impose less restriction to the prefix extractor. ---- Summary from original diff ---- This diff introduces a single InlineSkipList::Insert that unifies the existing sequential insert optimization (prev_), concurrent insertion, and insertion using externally-managed insertion point hints. There's a deep symmetry between insertion hints (cursors) and the concurrent algorithm. In both cases we have partial information from the recent past that is likely but not certain to be accurate. This diff introduces the struct InlineSkipList::Splice, which encodes predecessor and successor information in the same form that was previously only used within a single call to InsertConcurrently. Splice holds information about an insertion point that can be used to levera Closes https://github.com/facebook/rocksdb/pull/1561 Differential Revision: D4217283 Pulled By: yiwu-arbug fbshipit-source-id: 33ee437 |
||
---|---|---|
.. | ||
hash_cuckoo_rep.cc | ||
hash_cuckoo_rep.h | ||
hash_linklist_rep.cc | ||
hash_linklist_rep.h | ||
hash_skiplist_rep.cc | ||
hash_skiplist_rep.h | ||
skiplistrep.cc | ||
stl_wrappers.h | ||
vectorrep.cc |