Expand description
Abstractions over files, cloud storage, etc used in persistence.
Structs§
- Blob
Metadata - 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.
- Versioned
Data - 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.
- External
Error - 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§
- Result
Stream - A boxed stream, similar to what
async_trait
desugars async functions to, but hardcoded to our standard result type.