DeepFlash extract the maximum performance of the underlying flash memory complex by concurrently executing multiple firmware components across many cores within the device.
SLM-DB exploits persistent memory to maintain a B+-tree index and adopt an LSM-tree approach to stage inserted KV pairs in a PM resident memory buffer. SLM-DB has a single-level organization of KV pairs on disks and performs selective compaction for the KV pairs, collecting garbage and keeping the KV pairs sorted sufficiently for range query operations.
Key-Value Multi-Device (KVMD), a hybrid data reliability manager that employs a variety of reliability techniques with different trade-offs, for key-value devices. Compared to Linux mdadm-based RAID throughput degradation for block devices, data reliability for KV devices can be achieved at a comparable or lower throughput degradation. In addition, the KV API enables much quicker rebuild and recovery of failed devices, and also allows for both hybrid reliability configuration set automatically based on, say, value sizes, and custom per-object reliability configuration for user data.
GraphSSD replaces the conventional logical to physical page mapping mechanism in an SSD with a novel vertex-to-page mapping scheme and exploits the detailed knowledge of the ﬂash properties to minimize page accesses. GraphSSD also supports efﬁcient graph updates (vertex and edge modifications) by minimizing unnecessary page movement overheads.
Translation Ranger’s approach to generating translation contiguity is to rearrange the system’s physical memory mappings such that each VMA can be covered by as few contiguous regions as possible, with regions that are as large as possible.
In CRaft, a leader has two methods to replicate log entries to its followers. If the leader can communicate with enough followers, it will replicate log entries bycoded-fragments for better performance. Otherwise, it will replicate complete log entries for liveness.
MICA partitions data and mainly uses exclusive access to the partitions. MICA exploits CPU caches and packet burst I/O to disproportionately speed more loaded partitions, nearly eliminating the penalty from skewed workloads. MICA can fallback to concurrent reads if the load is extremely skewed, but avoids concurrent writes, which are always slower than exclusive writes.
Minos distributes requests for keys to cores according to the size of the item associated with the key. In particular, requests for small and large items are sent to disjoint subsets of cores. Size-aware sharding improves tail latencies by avoiding that a request for a small item gets queued behind a request for a large item.