- LSM-tree (Log-Structured Merge tree)
- The layered structure RocksDB uses: an in-memory buffer plus a sequence of levels of immutable sorted files, where new data enters at the top and migrates downward by merging. It converts random updates into large sequential file writes at the cost of consulting several levels per lookup.
- MemTable
- The in-memory write buffer, implemented as a skiplist so keys stay ordered with O(log n) insert and search. When it reaches its configured size it is made immutable, flushed to an SSTable, and discarded together with its write-ahead log.
- SSTable (Sorted String Table)
- An immutable on-disk file holding keys in sorted order, divided into uniformly sized blocks, with an index block carrying one entry per data block and usually a Bloom filter. Every level of the LSM-tree is built out of these files.
- Write amplification
- In this paper, total SSTable file writes divided by the number of MemTable bytes flushed, with WAL writes excluded. It matters because flash tolerates only a limited number of program/erase cycles, and the SSD itself adds a further 1.1x to 3x on top of whatever the software generates.
- Space amplification
- The extra space a database occupies beyond what its live data would need if fully compacted, reported here as a space overhead percentage. It became RocksDB's main optimization target once fleet measurement showed disk space, not IOPS or endurance, was the binding constraint.
- Leveled, Tiered and FIFO compaction
- The three compaction styles RocksDB offers: leveled keeps one sorted run per level with exponentially growing size targets, tiered (called Universal here, as in Cassandra and HBase) merges sorted runs lazily to cut write amplification, and FIFO simply drops the oldest files at a size limit for cache workloads.
- Dynamic Leveled Compaction
- A variant of leveled compaction in which each level's size target is derived from the measured actual size of the last level instead of being set statically by configuration. It keeps space overhead near 13 percent and, more importantly, keeps it stable as the database grows.
- Handoff checksum
- A checksum computed on data about to be written and passed down along with the data, so the layer below verifies it at write time rather than waiting until read time. RocksDB wants this for WAL appends, but local file systems rarely offer such a write API.
- User-defined timestamp
- An application-chosen version tag stored as metadata attached to a key-value pair, distinct from RocksDB's internal 56-bit sequence number and kept outside both key and value. It preserves point lookups and Bloom filter usefulness while enabling point-in-time reads and cross-shard consistent versions.