Expand description
Content-addressed blob and fenced root stores for immutable index segments.
Enable the postgres, turso, or s3 Cargo feature to use
[PostgresBlobStore], [TursoBlobStore], or [S3BlobStore], respectively.
Structs§
- BlobId
- A content identifier for immutable blobs.
- DbRoot
- Published durable index-root metadata carrying the write lease
(see
docs/design/log-and-transactor.md). - Encrypted
Blob Store - Blob-store decorator that exposes plaintext while storing deterministic authenticated ciphertext.
- FsStore
- Filesystem-backed content-addressed blob and fenced root store.
- GcReport
- Result counters from a mark-and-sweep garbage collection pass.
- KeyManifest
- The
keys:<db>root record. - Memory
Store - In-memory blob and root store for tests and embedded use.
- Protection
Class Key - The key a protection class currently seals under.
- Segment
Cache - Bounded read-through cache. Without a disk configuration it remains a bounded in-memory cache; its default capacity is 64 MiB.
- Segment
Cache Config - Configuration for the peer’s local segment cache.
- Segment
Cache Metrics - Lock-free counters and gauges suitable for Prometheus adapters.
- Storage
Key - One storage data key, wrapped under the manifest’s KEK.
Enums§
- Discovered
Store - An opened, read-only store discovered through the transactor.
- Discovered
Store Spec - A read-only storage-service connection advertised by a transactor.
- Storage
Algorithm - AEAD suite a storage-key epoch is used with.
- Storage
Connection Error - Failure translating storage information advertised by a transactor.
- Storage
KeyState - Lifecycle position of one storage-key epoch.
- Store
Error - Errors raised by store implementations.
Constants§
- FORMAT_
VERSION - Storage format written by this release.
- INDEX_
MANIFEST_ MAGIC - First line of every index-manifest blob. A flat key-stream blob can never start with these bytes: its first eight bytes are a big-endian key length, and this text decodes to an impossible length.
- KEY_
MANIFEST_ FORMAT_ VERSION - Manifest format written by this release.
- LOG_
RECORDS_ PER_ EPOCH_ LIMIT - Log records to seal under one storage epoch before its key must be rotated.
- LOG_
RECORDS_ PER_ EPOCH_ WARN - Where
KeyManifest::storage_rotation_duestarts saying yes.
Traits§
- Blob
Store - Immutable content-addressed blob storage.
- Root
Store - Named root pointer storage with compare-and-swap fencing.
- Segment
Reader - Minimal cache-neutral interface for immutable segment reads.
Functions§
- chunk_
segment_ keys - Splits a sorted key stream into encoded leaf chunks.
- db_
root_ name - Root-store key for a database’s published index root.
- decode_
index_ manifest - Decodes a manifest’s leaf-chunk ids in key order.
- decode_
segment_ keys - Decodes one
(u64 big-endian length, key)*chunk or flat segment blob back into its sorted key stream. Inverse ofchunk_segment_keys’ per-chunk framing; a pre-format-3 flat snapshot is one such run. - digest
- Computes the content id
BlobStore::putwould assign tobytes. - encode_
index_ manifest - Encodes a manifest naming
childrenleaf chunks in key order. - encode_
segment_ chunk - Encodes one chunk’s worth of keys: a run of
(u64 big-endian length, key)records — the same framing as a whole pre-format-3 segment, so one decoder reads both. - index_
blob_ children - Returns the blob ids referenced by an index blob: a manifest’s children, or nothing for a flat (pre-format-3) key stream. Garbage collection and backup share this walk so reachability can never diverge between them.
- is_
index_ manifest - Reports whether blob bytes are an index manifest (vs a flat key stream).
- keys_
root_ name - Root-store key for a database’s key manifest.
- load_
key_ manifest - Reads and validates a database’s key manifest.
- mark_
and_ sweep - Marks blobs reachable from
live_rootsand deletes every unmarked blob. - mark_
and_ sweep_ retained - Marks reachable blobs and deletes only unreachable blobs older than
retentionrelative tonow. - mark_
reachable - Adds every blob reachable from
live_rootstomarked. - meta_
root_ name - Root-store key for a database’s durable schema and naming metadata.
- publish_
key_ manifest - Publishes a key manifest, fenced on the bytes it was read from.
- sweep_
unmarked - Deletes every blob absent from
markedand older thanretention.
Type Aliases§
- Blob
IdStream - Asynchronous stream of blob identifiers produced by
BlobStore::list.