Expand description
Per-core actor runtime for Ursula.
Module map:
- [
cold_store]: opendal-backed cold tier handle and object path helpers. - [
request]: HTTP/gRPC request and response value types for each engine op. - [
command]: the replicatedGroupWriteCommandenvelope around the canonicalursula_stream::StreamCommand, plusFromconversions from request values into that command. - [
error]: runtime-level error typeRuntimeError. - [
engine]: theGroupEnginetrait, factory, metrics, and the boxed-future type aliases that form the replaceable per-group engine boundary, plus the in-memory implementation under [engine::in_memory]. - [
runtime]:ShardRuntime,RuntimeConfig, and per-core worker spawn. - [
core_worker]: single-thread actor that owns groups for one core. - [
group_actor]: per-group mailbox actor running inside a core worker. - [
ops]: declarative manifest of the uniform runtime operations; expands into the per-operation actor and client plumbing. - [
metrics]: runtime metrics shared across cores; lock-free counters.
Re-exports§
pub use cold_index::ColdIndexPage;pub use cold_index::ColdIndexPageCache;pub use cold_index::ColdIndexPageKey;pub use cold_index::ColdIndexPageStore;pub use cold_index::ColdStoreColdIndexPageStore;pub use cold_index::InMemoryColdIndexPageStore;pub use cold_index::cold_index_prefix;pub use cold_index::load_cold_chunks_from_pages;pub use cold_index::replace_cold_chunk_index_pages;pub use cold_index::replace_cold_chunk_index_pages_with_rollback;pub use cold_index::rollback_cold_index_pages;pub use cold_index::select_cold_chunk_compaction;pub use cold_index::write_cold_chunk_index_pages;pub use cold_index::write_external_segment_index_pages;pub use cold_worker::spawn_cold_compaction_worker_if_configured;pub use cold_worker::spawn_cold_flush_worker_if_configured;pub use cold_worker::spawn_cold_gc_worker_if_configured;
Modules§
- cold_
index - cold_
worker - Cold-tier background workers.
- journal
- Append-only framed journal.
Structs§
- AckCold
GcResponse - Advance
Retention Request - Advance
Retention Response - Append
Batch Request - Append
Batch Response - Append
External Request - Append
Request - Append
Response - Bootstrap
Stream Request - Bootstrap
Stream Response - Bootstrap
Update - Close
Stream Request - Close
Stream Response - Cold
Config - Cold-tier flush, GC, and cache configuration.
- Cold
Flush Candidate - Cold
GcEntry - One unit of deferred cold-storage reclamation. Enqueued deterministically in the state machine when a stream’s cold objects become unreferenced, drained asynchronously by the leader’s background GC worker.
- Cold
HotBacklog - Cold
Read Cache Params - Runtime parameters for the optional cold-read cache.
- Cold
Store - Cold
Store Fault - Cold
Store Fault Context - Cold
Store Fault Effect - Cold
Store Info - Cold
Write Admission - Compact
Cold Request - Compact
Cold Response - Create
Stream External Request - Create
Stream Request - Create
Stream Response - Delete
Snapshot Request - Delete
Stream Request - Delete
Stream Response - Flush
Cold Request - Flush
Cold Response - GetStream
Attrs Request - GetStream
Attrs Response - Group
Append Batch Response - Group
Engine Metrics - Group
Leader Hint - Group
Read Stream Parts - Group
Snapshot - Head
Stream Request - Head
Stream Response - Import
Group State Request - Import
Group State Response - InMemory
Group Engine - InMemory
Group Engine Factory - Inline
Snapshot Store - Bytes live inside the pointer. Equivalent to today’s in-memory snapshot.
- Plan
Cold Flush Request - Plan
Group Cold Flush Request - Publish
Snapshot Request - Publish
Snapshot Response - Purge
Bucket Report - Cluster-local summary of a bucket purge across all Raft groups.
- Purge
Bucket Response - Raft
Uncommitted Admission - Per-group admission that rejects new writes when the raft layer has not yet committed enough previously-submitted bytes. Independently configurable from the cold-side admission; intended to catch “replication lag” scenarios where hot bytes have not yet grown because nothing is committing.
- Read
Snapshot Request - Read
Snapshot Response - Read
Stream Request - Read
Stream Response - Runtime
Config - Runtime
Mailbox Snapshot - Runtime
Metrics - Runtime
Metrics Snapshot - S3Snapshot
Store - Bytes live in an opendal-managed S3 bucket under
{prefix}/group-{gid}/. - SetBucket
Quota Request - Sets or clears one bucket’s data-plane quota record on a group. The caller replicates the same request to every group.
- SetBucket
Quota Response - Shard
Runtime - Snapshot
Key - Identifier the store uses to derive a key/path for a snapshot blob.
- Snapshot
Pointer - Reference shipped through openraft
SnapshotData. Tiny when the backend stores the actual bytes out of line. - Snapshot
Reference Config - Node identities that may persist an external snapshot pointer for each group. S3 pruning is enabled only after every expected voter has published its current reference, which makes rolling upgrades fail closed.
- Stream
Append Count - Stream
Attrs - Stream
Integrity Snapshot - Stream
Record Range - Stream
Snapshot - Touch
Stream Access Response - Update
Stream Attrs Request - Update
Stream Attrs Response
Enums§
- Cold
GcTarget - Cold
Store Event - Cold
Store Operation - Error
Status - Group
Engine Error - Group
Infra Error - Infra error variants with structured fields render their human message on
demand (
message) instead of storing a denormalized copy alongside the fields.Internalis the exception: it carries free-form text with no structured source, so it keeps an ownedmessage. - Group
Read Stream Body - Group
Write Command - Replicated group-level write envelope around the canonical
StreamCommand: either one per-stream command, or an atomic batch of them applied as a single raft entry. This enum (serde-encoded) is the raft log payload; there is no separate wire mirror. - Group
Write Response - Runtime
Error - Runtime
Threading - Snapshot
Compression - Snapshot
Location - Where a snapshot blob lives. Carried in
SnapshotPointerover openraft. - Snapshot
Store Error - Stream
Error Code - Stream
Error Context
Traits§
Functions§
- default_
snapshot_ store - Default backend used when none is wired: bytes ride inline in the pointer.
- new_
cold_ chunk_ path - new_
external_ payload_ path - snapshot_
store_ from_ config - Pick a snapshot store from a typed
ursula_config::RaftSnapshotConfig. ReturnsNonewhen the backend is “inline” (the default) so callers can fall back todefault_snapshot_storewithout instantiating anything.
Type Aliases§
- Cold
Chunk Ref - Cold
Store Handle - External
Payload Ref - Group
AckCold GcFuture - Group
Advance Retention Future - Group
Append Batch Future - Group
Append Future - Group
Bootstrap Stream Future - Group
Bucket Usage Future - Group
Close Stream Future - Group
Cold HotBacklog Future - Group
Compact Cold Future - Group
Create Stream Future - Group
Delete Snapshot Future - Group
Delete Stream Future - Group
Engine Create Future - Group
Flush Cold Future - Group
GetStream Attrs Future - Group
Head Stream Future - Group
Import Group State Future - Group
Install Snapshot Future - Group
Plan Cold Flush Future - Group
Plan Cold GcFuture - Group
Plan Next Cold Flush Batch Future - Group
Publish Snapshot Future - Group
Purge Bucket Future - Group
Read Snapshot Future - Group
Read Stream Future - Group
Read Stream Parts Future - Group
Require Live Read Owner Future - Group
SetBucket Quota Future - Group
Shutdown Future - Group
Snapshot Future - Group
Touch Stream Access Future - Group
Update Stream Attrs Future - Group
Write Batch Future - Group
Write Future - Producer
Request - Shared
Snapshot Store - Snapshot
Bytes Iterator - Snapshot
Store Future