May 4, 23
Bitcask - A Log-Structured Hash Table
Bitcask is an embeddable key/value storage engine that is defined as a "Log-Structured Hash Table" in the paper that introduced it. The model of Bitcask is simple: all the key/value pairs are written to append-only files and an in-memory data structure contains a mapping between each key and the position of the value in the data file.
Mar 10, 23
WiscKey: Separating Keys from Values in SSD-Conscious Storage
LSM-tree (Log structured merge tree) is a data structure typically used when dealing with write-heavy workloads. LSM-tree optimizes the write-path by performing sequential writes to disk. WiscKey is a persistent LSM-tree-based key-value store that separates keys from values to minimize read and write amplification. The design of WiscKey is highly SSD optimized, leveraging both the sequential and random performance characteristics of the device.
Feb 25, 23
A Bloom filter is a probabilistic data structure used to test whether an element is a set member. A bloom filter can query against large amounts of data and return either "possibly in the set" or "definitely not in the set".
Apr 28, 22
Persistent memory - Introduction
Persistent memory is non-volatile storage that fits in a standard DIMM slot. Persistent memory provides higher throughput than SSD and NVMe but is slower than DRAM. With persistent memory, memory contents remain even when system power goes down in the event of an unexpected power loss, user-initiated shutdown, or system crash.