Skip to main content

chronix_engine/compaction/
mod.rs

1//! # chronix-compaction
2//!
3//! Hybrid compaction engine for the Chronix time-series database.
4//!
5//! Combines **TWCS** (Time-Window Compaction Strategy) with **size-tiered
6//! merging** and **write-amplification budgeting** for optimal background
7//! I/O management.
8//!
9//! This crate provides:
10//! - [`CompactionPicker`] — hybrid TWCS + size-tiered segment selection
11//! - [`CompactionExecutor`] — merge-sort compaction with deduplication
12//! - [`CompactionLevel`] — segment tiering (L0, L1, L2)
13//! - [`CompactionTask`] — description of a pending compaction job
14//! - [`CompactionPolicy`] — per-namespace compaction configuration
15//! - [`CompactionStrategy`] — strategy selection (TWCS, SizeTiered, Hybrid)
16//! - [`SizeTier`] — segment size classification (Tiny, Small, Medium, Large)
17//! - [`WriteAmpTracker`] — write-amplification budget tracking
18//! - [`SegmentState`] — lifecycle state machine for segment files
19
20#![warn(missing_docs)]
21#![deny(unsafe_code)]
22
23pub mod error;
24pub mod executor;
25pub mod picker;
26
27pub use error::CompactionError;
28pub use executor::CompactionExecutor;
29pub use picker::{
30    CompactionLevel, CompactionPicker, CompactionPolicy, CompactionStrategy, CompactionTask,
31    SegmentState, SizeTier, WriteAmpTracker,
32};