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::write_cold_chunk_index_pages;pub use cold_index::write_external_segment_index_pages;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 - 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 - 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 - 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 - 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}/. - 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. - Stream
Append Count - Stream
Attrs - Stream
Integrity Snapshot - Stream
Record Range - 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
Append Batch Future - Group
Append Future - Group
Bootstrap Stream Future - Group
Close Stream Future - Group
Cold HotBacklog 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
Install Snapshot Future - Group
Plan Cold Flush Future - Group
Plan Cold GcFuture - Group
Plan Next Cold Flush Batch Future - Group
Publish Snapshot Future - Group
Read Snapshot Future - Group
Read Stream Future - Group
Read Stream Parts Future - Group
Require Live Read Owner 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