Skip to main content

Module write_engine

Module write_engine 

Source
Expand description

Write engine for SSTable generation and persistence (M5)

This module provides the write path for CQLite, implementing WAL-backed memtable flushing and K-way merge for producing valid Cassandra 5.0 SSTables.

§Architecture

The WriteEngine is the public API that coordinates:

  1. WAL (Write-Ahead Log) - Durability
  2. Memtable - In-memory buffer
  3. SSTableWriter - On-disk persistence

§Write Flow

  1. User calls write(mutation) or execute(cql_statement)
  2. WriteEngine appends to WAL (durability)
  3. WriteEngine inserts into Memtable
  4. When Memtable exceeds threshold → flush to SSTable
  5. After successful flush → truncate WAL

§Recovery

On startup, the WriteEngine replays WAL entries into the memtable.

Re-exports§

pub use export::ExportOptions;
pub use export::ExportReport;
pub use memtable::Memtable;
pub use merge::KWayMerger;
pub use merge_policy::STCSPolicy;
pub use mutation::CellOperation;
pub use mutation::ClusteringBound;
pub use mutation::ClusteringKey;
pub use mutation::DecoratedKey;
pub use mutation::Mutation;
pub use mutation::PartitionKey;
pub use mutation::PartitionTombstone;
pub use mutation::RangeTombstone;
pub use mutation::TableId;
pub use wal::WriteAheadLog;

Modules§

cql_to_mutation
CQL AST to Mutation conversion.
export
SSTable export functionality for M5.2 (Issue #388)
memtable
In-memory write buffer (memtable)
merge
K-way merge for combining multiple L0 SSTables
merge_policy
Compaction merge policies for SSTable selection (M5.2)
mutation
Mutation types for CQL write operations
wal
Write-ahead log (WAL) for crash recovery

Structs§

CompactionStats
Cumulative statistics across all compaction operations (M5.2, Issue #474)
MaintenanceReport
Maintenance report from a maintenance_step() call (M5.2, Issue #384)
WriteEngine
Write engine coordinator
WriteEngineConfig
Write engine configuration

Enums§

Durability
WAL durability mode for the write engine.

Traits§

MergePolicy
Trait for merge policy implementations (M5.2, Issue #383)