Add RocksDB L0/L1 compression config#4865
Conversation
dd36405 to
652ec74
Compare
652ec74 to
583b3a4
Compare
|
Ran a per-algorithm benchmark of this on a 3×24-CPU GCP cell — sharing the performance observations. Workload regimeA parametric agent load-gen ( Results
Observations
Caveat for whoever sets the defaultThis is a disk-pressured regime, where fewer-bytes wins. On a CPU-bound cell the ranking flips (an earlier 8-CPU test showed disabling compression won outright). So there's no universal winner — it's a CPU↔disk trade, which is exactly why per-algorithm selection is the right call. (Synthetic ~4×-compressible payload; real agent JSON may compress more and nudge zstd up a bit.) |
Follow-up: disk-saturation A/B (zstd vs lz4) — the optimal codec flips with the bottleneckMy earlier benchmark compared the four codecs at a sustainable, sub-saturating load (equal Per-stage averages (3×24-CPU nodes, provisioned-bandwidth SSD ~400 MiB/s/disk):
Observations
Takeaway for this PR: there's no single best default across deployment shapes — the optimum codec |
583b3a4 to
b26bfeb
Compare



Summary
rocksdb-l0-l1-compressionto select the RocksDB compression algorithm for L0/L1 SST files.zstd,lz4,snappy, andnone.rocksdb-disable-l0-l1-compressionkey for backwards compatibility.Example
Global L0/L1 compression configuration:
Compatibility
rocksdb-disable-l0-l1-compression = truestill disable L0/L1 compression.rocksdb-disable-l0-l1-compression = falsestill use ZSTD for L0/L1 compression.rocksdb-disable-l0-l1-compressionandrocksdb-l0-l1-compressionare both set in the same config block, the originalrocksdb-disable-l0-l1-compressionkey takes precedence.Validation
cargo checkcargo nextest run --all-featurescargo fmt --all -- --checkcargo clippy --all-features --all-targets --workspace -- -D warnings