Module location

Source
Expand description

Abstractions over files, cloud storage, etc used in persistence.

Structs§

BlobMetadata
Metadata about a particular blob stored by persist
Determinate
An error coming from an underlying durability system (e.g. s3) indicating that the operation definitely did NOT succeed (e.g. permission denied).
Indeterminate
An error coming from an underlying durability system (e.g. s3) indicating that the operation might have succeeded (e.g. timeout).
SeqNo
The “sequence number” of a persist state change.
Tasked
Wraps all calls to a backing store in a new tokio task. This adds extra overhead, but insulates the system from callers who fail to drive futures promptly to completion, which can cause timeouts or resource exhaustion in a store.
VersionedData
An abstraction for a single arbitrarily-sized binary blob and an associated version number (sequence number).

Enums§

CaSResult
Return type to indicate whether Consensus::compare_and_set succeeded or failed.
ExternalError
An error coming from an underlying durability system (e.g. s3) or from invalid data received from one.

Constants§

BLOB_GET_LIVENESS_KEY
A key usable for liveness checks via Blob::get.
CONSENSUS_HEAD_LIVENESS_KEY
A key usable for liveness checks via Consensus::head.
SCAN_ALL
Helper constant to scan all states in Consensus::scan. The maximum possible SeqNo is i64::MAX.

Traits§

Blob
An abstraction over read-write access to a bytes key->bytes value store.
Consensus
An abstraction for VersionedData held in a location in persistent storage where the data are conditionally updated by version.

Type Aliases§

ResultStream
A boxed stream, similar to what async_trait desugars async functions to, but hardcoded to our standard result type.