Skip to main content

Crate solistore

Crate solistore 

Source
Expand description

solistore — an embedded, ordered key-value store built as an LSM tree.

It exists to replace RocksDB under SoliDB, so its surface is what SoliDB uses of RocksDB and no more: column families created and dropped at run time, atomic batches across them, range deletes, bounded iterators in both directions, checkpoints and a handful of size metrics.

Every commit is fsynced before it is acknowledged unless the database is opened in eventual mode; concurrent commits share one fsync.

Modules§

fs
The file system, behind a trait so tests can crash it.

Structs§

Bytes
A cheaply cloneable and sliceable chunk of contiguous memory.
ColumnFamily
A handle on a column family. Cheap to clone. Every handle on a column family that has been dropped reports Error::ColumnFamilyDropped, even if one of the same name has been created since.
Db
An open database. Cheap to clone; closed when the last clone drops.
DbIterator
IngestReport
A structural change: its MANIFEST edits, the super version it leads to, and the table files it removes. What Db::ingest loaded.
Options
ReadOptions
Bounds in the style of RocksDB’s iterate_lower_bound / iterate_upper_bound: lower inclusive, upper exclusive.
RecoveryReport
What opening the database found in its logs.
Stats
Counters since the database was opened: where writers waited, and how much work the background did. A snapshot; see Db::stats.
WriteBatch
WriteOptions

Enums§

Direction
Durability
When a commit is acknowledged relative to the disk.
Error
Everything an operation can fail with.
IteratorMode
Where an iterator starts, as in RocksDB’s IteratorMode.

Constants§

MAX_GROUP_BYTES
The most a commit group writes to the WAL at once. A leader stops taking batches past this, so one huge group cannot hold every writer up.

Type Aliases§

Result