-
Notifications
You must be signed in to change notification settings - Fork 35
[FEATURE] Add manual compaction API (level/key-range) #88
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requeststatus/needs-triageNeeds initial triageNeeds initial triage
Description
🚀 Is your feature request related to a problem?
Compaction is currently background-driven only. Operators and experiments lack explicit controls for forcing compaction at specific levels/ranges.
💡 Proposed Solution
Add a manual compaction API and CLI entrypoint.
Examples:
- compact a full level,
- compact a key range,
- trigger with optional wait/status output.
🎨 Alternatives Considered
- Keep only automatic compaction scheduler.
- Use offline tools/scripts touching internal files.
Manual API is safer and more operable.
📝 Technical Details / Implementation Plan
- Define internal compaction job request (level/range/options).
- Expose API in DB and command entry in
cmd/nokv. - Add tests for correctness, idempotence, and interaction with running background compactions.
🧐 Additional Context
Manual compaction is useful for benchmarking, incident mitigation, and maintenance windows.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requeststatus/needs-triageNeeds initial triageNeeds initial triage
Projects
Status
Todo