1#![deny(clippy::unwrap_used)]
2#![deny(clippy::expect_used)]
3#![warn(clippy::pedantic)]
4#![allow(clippy::module_name_repetitions)]
5
6mod backpressure;
7mod batch;
8mod buffer;
9mod chaos;
10mod checksum;
11mod error;
12mod hlc;
13mod numa;
14mod sort_key;
15mod tlv;
16
17pub use backpressure::{
18 BackpressureConfig, BackpressureGuard, BackpressureLevel, BackpressureMonitor,
19 BackpressureSnapshot,
20};
21pub use batch::{BatchPool, IngestionBatch, LoanableBatch};
22pub use buffer::{AlignedBuffer, NumaAlignedBuffer};
23pub use chaos::{
24 ChaosConfig, ChaosInjector, ChaosScenario, FaultType, SharedChaosInjector, shared_injector,
25};
26pub use checksum::crc32c;
27pub use error::{LanceError, Result};
28pub use hlc::{ClockHealth, HlcTimestamp, HybridLogicalClock};
29pub use numa::{
30 NumaAllocator, NumaThreadPoolConfig, NumaTopology, get_current_numa_node, pin_thread_to_cpu,
31 pin_thread_to_numa_node,
32};
33pub use sort_key::SortKey;
34pub use tlv::{Header, parse_header};
35
36pub const LANCE_MAGIC: [u8; 4] = [0x4C, 0x41, 0x4E, 0x43]; pub const TLV_HEADER_SIZE: usize = 5;
38pub const EXTENDED_TLV_HEADER_SIZE: usize = 7;
39pub const EXTENDED_TYPE_MARKER: u8 = 0xFF;
40
41pub const DEFAULT_BATCH_SIZE: usize = 64 * 1024; pub const DEFAULT_SPARSE_INDEX_INTERVAL: u64 = 4096;
43pub const TIMESTAMP_JITTER_WINDOW_NS: u64 = 10_000_000;