Parallax
Parallax is a research LSM key-value store that combines in-place records, a transient medium-record log and a garbage-collected large-record log.
Placement: Small records stay in the index. Medium records begin in L0 and its recovery log, enter a sorted transient log during compaction, then return in place at a lower level so whole transient segments can be reclaimed. Large records still require log garbage collection. [1]
Classification: Revision d4aae58 uses min(key bytes, value bytes) / max(key bytes, value bytes), plus an in-place size cap. With the cap inactive, 8-byte keys and 120-byte values are medium, while 32-byte keys and 96-byte values are small: equal 128-byte totals need not share a category. Both 0.02 and 0.2 belong to the medium interval. [2]
Configuration: The implementation moves medium-log records back in place at the configured level_medium_inplace, rather than assuming that every deployment uses the last level. The checked options file sets this level to 3. [3] [4]
Relations
Limitations
- The paper's recovery contract allows loss of the latest acknowledged writes. Recovery to a consistent point is not a promise that every returned write is durable. [1]
Citations
- Xanthakis et al. Balancing Garbage Collection vs I/O Amplification using hybrid Key-Value Placement. arXiv:2106.03840v2, sections 2-5.
- Parallax author source d4aae58: calculate_KV_category in lib/btree/btree.c.
- Parallax author source d4aae58: medium-record transitions in compaction_worker.c.
- Parallax author source d4aae58: options.yml.
- Parallax: Hybrid Key-Value Placement in LSM-based Key-Value Stores. SoCC 2021, pp. 305-318. DOI:10.1145/3472883.3487012.
Sources & caveats
- Design and evaluation scope use the June 2021 preprint, not an assumed byte-identical copy of the final SoCC paper. [1] [5]
- The evaluation used one server, a 375-GB Optane P4800X and RocksDB/BlobDB 6.11.4 with Bloom filters disabled. Results are not current-engine rankings. [1]
- Source inspection of revision d4aae5890630bb33405f3a9e03cc4e4978133ecf; no engine benchmark, power-loss test or recovery reproduction was performed.