Skip to main content

nodedb_columnar/
lib.rs

1//! Columnar segment format and memtable for NodeDB analytical storage.
2//!
3//! Provides the shared segment format used by all columnar profiles
4//! (plain, timeseries, spatial). Segments are self-contained files with
5//! per-column compressed blocks, block statistics, and a CRC-validated footer.
6//!
7//! # Segment Layout
8//!
9//! ```text
10//! [SegmentHeader: magic "NDBS" + version + endianness]
11//! [Column 0 blocks][Column 1 blocks]...[Column N blocks]
12//! [SegmentFooter: schema_hash, column metadata, block stats, CRC32C]
13//! ```
14
15pub mod compaction;
16pub mod delete_bitmap;
17pub mod error;
18pub mod format;
19pub mod memtable;
20pub mod mutation;
21pub mod pk_index;
22pub mod predicate;
23pub mod reader;
24pub mod wal_record;
25pub mod writer;
26
27pub use compaction::compact_segments;
28pub use delete_bitmap::DeleteBitmap;
29pub use error::ColumnarError;
30pub use format::{
31    BLOCK_SIZE, BlockStats, ColumnMeta, MAGIC, SegmentFooter, SegmentHeader, VERSION_MAJOR,
32    VERSION_MINOR,
33};
34pub use memtable::ColumnarMemtable;
35pub use mutation::MutationEngine;
36pub use pk_index::PkIndex;
37pub use predicate::ScanPredicate;
38pub use reader::SegmentReader;
39pub use writer::SegmentWriter;