HiKV
- A persistent key-value store, constructing a hybrid index in hybrid memory
- well-performed scalability
- crash consistency guaranteeing
- Hybrid memory (DRAM and NVM) systems are byte-addressable – providing similar performance for sequential and random access
- Issue:
- Either hash-index or B+Tree cannot efficiently support all (Put/Get/Update/Delete/Scan) operation.
- Scan operation becomes important, scan operation is slow in Hash index (without sorted)
- Features:
- A hybrid index consisting of a hash index
in NVM and a B+-Tree index in DRAM which supports rich KV operation - Concurrency schemes => high scalability
- Ordered-write consistency + specific hash design => atomic write => crash consistency with reduced NVM write
- A hybrid index consisting of a hash index
- Operation procedure:
- writing KV items to NVM
- writing newly-added index entry to hash index(NVM)
- insert Put request to updating queue in memory
- back-end thread gets the request and operates the B+tree in background
RAIAD
- persistent single machine
- based on Log-Structured Merge(LSM Tree)
- Three Components: Memory(C) / Disk(L) / Commit Log(CL)
- Three motivations:
- Data skew unawareness
- Premature and iterative compaction, data skew increases the probability that multi L file has the same key
- Duplicate writes: CL => L + C => L
- Two operations:
- Flushing, when C or CL is full
- Compaction, Merge files(SStables) in background, overlapping key ranges
- Fit with different workloads
- Skewed => Triad-Mem => Flushing and Compaction
- In-Between => Triad-Disk => Compaction
- Uniform => Triad-Log => Flushing
- optimization techs
- Keep hot keys in memory / Flush only cold keys / Keep hot keys in Commit Log (hots => Duplicate keys)
- Defer file compaction until the overlap between files becomes large enough, merge lots of duplicate keys
- Convert CL to a special L0 SSTable(CL-SSTable). Avoid flushing the memory together, play in LSMs and using them in a manner similar to SSTables.
Soft Updates Made Simple and Fast on Non-volatile Memory
NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems
Octopus
- Design
- Shared persistent memory pool => reduce data copy
- self-identified meta-data RPC => reduce response latency
- Client-active data I/O => rebalance CPU/network overhead
- Collect-dispatch transaction efficient CC (RDMA CAS lock)
REWIND: Recovery Write-Ahead System for In-Memory Non-
Volatile Data-Structures