Problem
According to ROADMAP.md, compaction is listed as "not started" for v3-lts, but significant compaction infrastructure already exists:
src/core/engine/compaction.rs — implements Compaction struct with pick_compaction() and compact() methods
CompactionStrategy trait with SizeTieredCompaction and LeveledCompaction implementations
benchmarks/write_amplification.rs — measures compaction write amplification
POST /admin/compact — triggers compaction via API
engine.maybe_compact() — background compaction spawning
version_set.atomic_replace() — atomic SSTable replacement after compaction
However, there are gaps:
Missing features
- Tombstone GC during compaction:
compact_cf_core() passes range tombstones to the compaction strategy, but the Leveled compaction strategy may not fully remove tombstones when compacting levels beyond L0
- Compaction status/progress API: No way to query current compaction progress, pending work, or estimated completion
- Compaction metrics:
CompactionMetrics exists but is only partially plumbed through the API (/admin/compact returns metrics, but background compaction metrics are lost)
- Manual compaction targeting: Cannot compact a specific key range or a specific SSTable
- Compaction cancellation: No way to cancel a running compaction
- Compaction strategy configuration: Cannot change compaction strategy at runtime
What ROADMAP.md promises for v3-lts
- Full Size-Tiered and Leveled compaction
- Tombstone garbage collection
- Compaction status API
- Compaction metrics with Prometheus integration
- Compaction strategy selection per column family
Request
-
Audit current compaction:
- List all existing compaction code paths
- Identify which ROADMAP items are already done vs. truly missing
- Update ROADMAP.md with accurate status
-
Complete missing compaction features:
- Ensure tombstone GC works for all strategy types
- Add
GET /admin/compaction/status endpoint returning pending/paused/running state
- Add compaction metrics to
GET /stats output
- Allow strategy selection per column family (via engine option or config)
-
Add compaction tests:
- Tombstone removal after compaction
- Cross-level compaction correctness
- Compaction with concurrent writes
- Compaction interruption + recovery
Acceptance criteria
Problem
According to ROADMAP.md, compaction is listed as "not started" for v3-lts, but significant compaction infrastructure already exists:
src/core/engine/compaction.rs— implementsCompactionstruct withpick_compaction()andcompact()methodsCompactionStrategytrait withSizeTieredCompactionandLeveledCompactionimplementationsbenchmarks/write_amplification.rs— measures compaction write amplificationPOST /admin/compact— triggers compaction via APIengine.maybe_compact()— background compaction spawningversion_set.atomic_replace()— atomic SSTable replacement after compactionHowever, there are gaps:
Missing features
compact_cf_core()passes range tombstones to the compaction strategy, but the Leveled compaction strategy may not fully remove tombstones when compacting levels beyond L0CompactionMetricsexists but is only partially plumbed through the API (/admin/compactreturns metrics, but background compaction metrics are lost)What ROADMAP.md promises for v3-lts
Request
Audit current compaction:
Complete missing compaction features:
GET /admin/compaction/statusendpoint returning pending/paused/running stateGET /statsoutputAdd compaction tests:
Acceptance criteria