1pub mod actor; pub mod admission_control; #[cfg(feature = "experimental")]
79pub mod aries_recovery; pub mod cdc; #[cfg(feature = "experimental")]
82pub mod checkpoint; pub mod columnar_compression;
84pub mod correctness_testing; pub mod database; pub mod durability_contract; pub mod durable_storage; pub mod encryption; pub mod ffi;
90pub mod group_commit; pub mod hlc; pub mod hybrid_store; pub mod io_isolation; pub mod ipc; #[cfg(unix)]
96pub mod ipc_server; pub mod keyring; pub mod learned_index_integration;
99pub mod lock; pub mod lscs;
101pub mod mvcc_concurrent; #[deprecated(
103 note = "Unused duplicate; live MVCC is mvcc_concurrent::ConcurrentMvcc + durable_storage::MvccMemTable. Scheduled for removal (Task 2 consolidation)."
104)]
105pub mod mvcc_new;
106pub mod mvcc_snapshot;
107pub mod page_manager;
108#[cfg(feature = "experimental")]
109pub mod pitr; #[cfg(feature = "experimental")]
111pub mod production_wal; pub mod ssi; #[deprecated(
114 note = "Unused; SSI lives in ssi/MvccManager. Scheduled for removal (Task 2 consolidation)."
115)]
116pub mod ssi_scaling; pub mod storage_engine;
118pub mod streaming_iterator; pub mod supervisor; pub mod transaction; pub mod txn_arena; pub mod txn_wal;
123pub mod upgrade_contract; #[cfg(feature = "experimental")]
125pub mod wal_fencing; pub mod wal_integration;
127pub mod zero_copy_safety; #[deprecated(
131 note = "Unused duplicate; live learned index is learned_index_integration. Scheduled for removal (Task 2 consolidation)."
132)]
133pub mod adaptive_learned_index;
134#[deprecated(
135 note = "Unused duplicate memtable; live memtables are lscs::ColumnarMemtable + durable_storage::MvccMemTable. Scheduled for removal (Task 2 consolidation)."
136)]
137pub mod adaptive_memtable; pub mod batch_wal; pub mod deferred_index; pub mod dirty_tracking; pub mod index_policy; pub mod key_buffer; #[deprecated(
144 note = "Unused duplicate memtable; live memtables are lscs::ColumnarMemtable + durable_storage::MvccMemTable. Scheduled for removal (Task 2 consolidation)."
145)]
146pub mod lockfree_memtable; pub mod packed_row;
148pub mod queue_index; #[deprecated(
152 note = "Unused duplicate; live learned index is learned_index_integration. Scheduled for removal (Task 2 consolidation)."
153)]
154pub mod clr_learned_index; #[cfg(feature = "experimental")]
156pub mod columnar_wal; pub mod epoch_arena; pub mod generational_slab; #[cfg(feature = "experimental")]
160pub mod hierarchical_ts; #[cfg(all(unix, feature = "experimental"))]
162pub mod io_uring_wal; pub mod lockfree_epoch; pub mod polymorphic_value; #[cfg(feature = "experimental")]
166pub mod rl_workload; pub mod shard_coalesced; #[deprecated(
169 note = "Unused duplicate memtable; live memtables are lscs::ColumnarMemtable + durable_storage::MvccMemTable. Scheduled for removal (Task 2 consolidation)."
170)]
171pub mod stratified_skiplist; pub mod cow_btree; pub mod epoch_mvcc; pub mod page_cache; pub mod row_format; pub mod tiered_memtable; pub mod tournament_tree; pub mod vectorized_scan; pub mod zero_copy_serde; pub mod lazy_namespace; pub mod namespace; pub mod object_store_tier; pub mod backend;
190pub mod backup;
191pub mod block_checksum;
192pub mod bloom;
193pub mod compression;
194pub mod dict_compression;
195pub mod direct_io;
196#[cfg(unix)]
197pub mod io_uring;
198pub mod manifest;
199pub mod memory;
200pub mod parallel_merge;
201pub mod payload;
202pub mod prefetch;
203pub mod sketches;
204pub mod two_level_index;
205pub mod validation;
206pub mod version_store;
207pub mod zero_copy;
208
209pub use columnar_compression::{
211 ColumnEncoder, DeltaEncoder, DictionaryEncoder, EncodingStats, EncodingType, RleEncoder,
212};
213pub use learned_index_integration::{
214 HybridIndex, IndexManager, IndexType, KeyStats, PointLookupExecutor,
215};
216pub use lscs::{
217 ColumnDef, ColumnGroup, ColumnType, ColumnarMemtable, Lscs, LscsConfig, LscsRecoveryStats,
218 LscsStats, TableSchema,
219};
220#[allow(deprecated)]
221pub use mvcc_snapshot::{
222 MvccStore, Snapshot as MvccSnapshot, Timestamp, TransactionManager, TxnId, TxnStatus,
223 VersionChain, VersionInfo,
224};
225pub use page_manager::{
226 DEFAULT_PAGE_SIZE, DbHeader, FORMAT_VERSION, FreePageHeader, PageId, PageManager,
227 PageManagerStats, PageType, SOCHDB_MAGIC,
228};
229pub use storage_engine::{
230 ColumnId, ColumnIterator, Row, RowId, StorageEngine, StorageEngineType, StorageStats,
231 TxnHandle, open_storage_engine,
232};
233pub use transaction::{
234 DurabilityLevel, IsolationLevel, RecoveryStats as TxnRecoveryStats, TransactionCoordinator,
235 TransactionHandle,
236};
237pub use txn_wal::{CrashRecoveryStats, TxnWal, TxnWalBuffer, TxnWalEntry, TxnWalStats};
238pub use wal_integration::{
239 GroupCommitBuffer, MvccTransactionManager, RecoveryStats, Transaction, TxnState,
240 WalStorageManager,
241};
242
243#[allow(deprecated)]
245pub use adaptive_learned_index::{AdaptiveLearnedIndex, LearnedIndexStats, PiecewiseLinearModel};
246#[allow(deprecated)]
247pub use adaptive_memtable::{
248 AdaptiveMemtableConfig, AdaptiveMemtableSizer, AdaptiveMemtableStats, DEFAULT_BASE_SIZE,
249 MAX_MEMTABLE_SIZE, MIN_MEMTABLE_SIZE,
250};
251pub use batch_wal::{
252 BatchAccumulator, BatchedWalReader, BatchedWalStats, BatchedWalWriter, ConcurrentBatchedWal,
253 DEFAULT_MAX_BATCH_BYTES, DEFAULT_MAX_BATCH_SIZE,
254};
255#[allow(deprecated)]
256pub use clr_learned_index::{ClrIndex, ClrLookupResult, ClrStats, IndexedSortedRun};
257pub use key_buffer::{
258 ArenaKey,
259 ArenaKeyHandle,
260 BatchKeyGenerator,
261 InternedTablePrefix,
262 KeyArena,
264 KeyBuffer,
265 MAX_KEY_LENGTH,
266};
267#[allow(deprecated)]
268pub use lockfree_memtable::{
269 HazardDomain,
270 INLINE_VALUE_SIZE,
271 LockFreeMemTable,
272 LockFreeVersion,
273 LockFreeVersionChain,
274 ValueStorage,
276};
277pub use packed_row::{
278 PackedColumnDef, PackedColumnType, PackedRow, PackedRowBuilder, PackedTableSchema,
279};
280
281pub use backend::{LocalFsBackend, ObjectMetadata, StorageBackend};
283pub use backup::{BackupManager, BackupMetadata};
284pub use block_checksum::{
285 BlockChecksumConfig, BlockChecksumStats, BlockType as BlockChecksumType, BlockWriter,
286 ChecksummedBlock,
287};
288pub use bloom::{BlockedBloomFilter, BloomFilter, LevelAdaptiveFPR, UnifiedBloomFilter};
289pub use compression::{CompressionEngine, CompressionStats, StorageTier};
290pub use manifest::{FileMetadata, LsmState, Manifest, VersionEdit};
291pub use memory::{MemoryBudget, MemoryTracker, WriteBufferManager, WriteBufferStats};
292#[allow(deprecated)]
293pub use mvcc_new::{
294 ColumnGroupRef, ReadVersion, Snapshot, SnapshotGuard, VersionGuard, VersionSet,
295 VersionSetStats, VersionSetStatsSnapshot,
296};
297pub use payload::{CompressionType, PayloadStats, PayloadStore};
298pub use sketches::{AdaptiveSketch, CountMinSketch, DDSketch, ExponentialHistogram, HyperLogLog};
299pub use two_level_index::{
300 BlockIndexEntry, BlockIndexReader, FencePointer, TemporalKey, TwoLevelIndex,
301};
302pub use validation::{SSTableValidator, validate_sstable_file};
303
304pub use durable_storage::{
306 ArenaMvccMemTable, DurableStorage, EphemeralHandle, MvccMemTable, TransactionMode,
307};
308
309#[derive(Debug, Clone, Copy, PartialEq, Eq)]
320pub struct DurabilityCapabilities {
321 pub crash_recovery: bool,
323 pub at_rest_encryption: bool,
329 pub point_in_time_recovery: bool,
332 pub aries_checkpoint: bool,
334 pub wal_fencing: bool,
336}
337
338pub const fn durability_capabilities() -> DurabilityCapabilities {
345 DurabilityCapabilities {
346 crash_recovery: true,
347 at_rest_encryption: false,
348 point_in_time_recovery: false,
349 aries_checkpoint: false,
350 wal_fencing: false,
351 }
352}
353
354#[cfg(test)]
355mod durability_capabilities_tests {
356 use super::durability_capabilities;
357
358 #[test]
359 fn live_build_durability_matrix_is_honest() {
360 let caps = durability_capabilities();
361 assert!(
363 caps.crash_recovery,
364 "live path must provide crash-consistent WAL recovery"
365 );
366 assert!(!caps.at_rest_encryption);
368 assert!(!caps.point_in_time_recovery);
369 assert!(!caps.aries_checkpoint);
370 assert!(!caps.wal_fencing);
371 }
372}
373
374pub use mvcc_concurrent::{
376 ConcurrentMvcc, ConcurrentVersionChain, ConcurrentVersionEntry, HlcTimestamp, ReaderSlot,
377 VersionStore, VersionStoreStats, WriterGuard,
378};
379
380pub mod compaction_policy;
382pub mod concurrent_art;
383pub mod optimized_scan;
384pub mod sstable;
385pub mod version_set;
386pub mod wal_segment;
387
388pub use compaction_policy::{
390 CompactionConfig, CompactionFile, CompactionJob, CompactionPicker, CompactionPriority,
391 CompactionReason, CompactionState, CompactionStats, CompactionStrategy,
392 LeveledCompactionPicker, RetentionConfig, UniversalCompactionPicker, VersionPruner,
393};
394pub use concurrent_art::ConcurrentART;
395pub use cow_btree::{BTreeEntry, BTreeSnapshot, CowBTree, Node, SearchResult};
396pub use epoch_mvcc::{
397 CommitResult, EpochManager, EpochMvccStore, EpochSnapshot, EpochTransaction, EpochVersionChain,
398 GcStats, StoreStats, VersionEntry,
399};
400pub use lazy_namespace::{LazyNamespaceConfig, LazyNamespaceTable};
401pub use object_store_tier::{ObjectStoreTier, ObjectStoreTierConfig, SegmentDescriptor};
402pub use optimized_scan::{
403 EntrySource, FileRange, LevelFiles, RangeScanner, ScanConfig, ScanStats, TournamentTree,
404 VersionedEntry,
405};
406pub use page_cache::{CacheStats, CachedPage, ClockProCache, PageId as CachePageId, PageState};
407pub use row_format::{Slot, SlotRow, SlotRowArena, SlotRowFlags, SlotRowHandle};
408pub use sstable::{
409 BlockBuilder, BlockCache, BlockHandle, BlockIterator, BlockType, BloomFilterPolicy,
410 FilterPolicy, FilterReader, Footer, Header, ReadOptions, RibbonFilterPolicy, SSTable,
411 SSTableBuilder, SSTableBuilderOptions, SSTableBuilderResult, SSTableFormat, Section,
412 SectionType, TableMetadata, XorFilterPolicy,
413};
414pub use tiered_memtable::{HotEntry, SortedBatch, TieredMemTable};
415pub use vectorized_scan::{
416 ColumnVector,
417 ComparisonOp,
418 DEFAULT_BATCH_SIZE,
419 Int64Comparison,
420 SimdVisibilityFilter,
422 SoaBatch,
423 SoaScanIterator,
424 SoaScanStats,
425 SoaSource,
426 StreamingScanIterator,
427 ValueHandle,
428 VectorBatch,
429 VectorPredicate,
430 VectorizedScanConfig,
431 VectorizedScanStats,
432 VersionedSlice,
433};
434pub use version_set::{
435 FileMetadata as VersionFileMetadata, ImmutableMemTable, ImmutableMemTableRef, LevelMetadata,
436 SuperVersion, SuperVersionHandle, VersionSet as CowVersionSet,
437};
438pub use wal_segment::{
439 CheckpointRecord, RecoveryIterator, SegmentConfig, SegmentHeader, SegmentMetadata,
440 SegmentStats, WalEntry, WalSegmentManager,
441};
442pub use zero_copy_serde::{
443 FORMAT_VERSION as SERDE_FORMAT_VERSION, FieldDescriptor, HEADER_SIZE as SERDE_HEADER_SIZE,
444 MmapWalReader, SerdeStats, WalBatchReader, WalBatchWriter, WalEntryBuilder, WalEntryHeader,
445 WalEntryReader, WalEntryType, ZERO_COPY_MAGIC, ZeroCopyHeader,
446};
447
448pub use txn_arena::{ArenaWriteSet, BytesRef, KeyFingerprint, TxnArena, TxnWriteBuffer, WriteOp};
450
451pub use dirty_tracking::{BatchedDirtyTracker, DirtyEvent, DirtyTrackingStats, TxnDirtyBuffer};
453
454pub use index_policy::{
456 BalancedTableIndex, IndexPolicy, SortedRun, TableIndexConfig, TableIndexRegistry,
457};
458
459pub use queue_index::{
461 CompositeQueueKey, QueueIndex, QueueIndexConfig, QueueIndexStats, QueueTableRegistry,
462};
463
464pub use cdc::{CdcConfig, CdcEmitter, CdcError, CdcEvent, CdcLog, CdcOperation, CdcSubscriber};
466
467pub use database::{
469 ColumnDef as DbColumnDef,
470 ColumnType as DbColumnType,
471 ColumnarQueryResult, Database,
473 DatabaseConfig,
474 GroupCommitSettings,
475 QueryBuilder,
476 QueryResult,
477 QueryRowIterator,
478 RecoveryStats as DbRecoveryStats,
479 Stats as DbStats,
480 SyncMode,
481 TableSchema as DbTableSchema,
482 TxnHandle as KernelTxnHandle,
483 VectorSearchResult,
484};