Expand description
Concrete tier implementations + memory factories (M4.B 2026-05-10).
Three generic structs back the three tier sub-traits:
SnapshotStorage<B, T, C>→SnapshotStorageTier<T>AppendLogStorage<B, T, C>→AppendLogStorageTier<T>KvStorage<B, T, C>→KvStorageTier<T>
Each holds:
backend: Arc<B>(shared, multi-tier-share-one-backend supported per D147)codec: C(defaultJsonCodecper D148)name: String,debounce_ms,compact_every— cadence knobsfilter,key_of— optional closures (boxeddyn Fnper D149)- Internal pending buffer (
parking_lot::Mutex’d)
Convenience factories memory_snapshot() / memory_append_log() /
memory_kv() wrap a fresh in-process backend.
Structs§
- Append
LogStorage - Append-log tier — buffers per-key entries;
flush()encodes each bucket as an array via codec and merge-writes it into the backend. Mirrors TSappendLogStorage. - Append
LogStorage Options - KvStorage
- Key-value tier — buffers per-key pending writes;
flush()encodes each value via codec and writes it to the backend. Mirrors TSkvStorage. - KvStorage
Options - Snapshot
Storage - Snapshot tier — buffers one pending snapshot;
flush()encodes via codec and writes to the backend underkey_of(snapshot). Mirrors TSsnapshotStorage(backend, opts). - Snapshot
Storage Options - Options for
SnapshotStorageconstruction.
Functions§
- append_
log_ storage - Factory: wrap a backend as an append-log tier.
- kv_
storage - Factory: wrap a backend as a kv tier.
- memory_
append_ log - memory_
kv - memory_
snapshot - Convenience: snapshot tier over a fresh in-memory backend.
- snapshot_
storage - Factory: wrap a backend as a snapshot tier.