struct ActiveReplicationState<T> {
    replica_ids: BTreeSet<ReplicaId>,
    peeks: HashMap<Uuid, PendingPeek>,
    subscribes: BTreeSet<GlobalId>,
    uppers: HashMap<GlobalId, ReportedUppers<T>>,
    index_log_uppers: HashMap<GlobalId, ReportedUppers<T>>,
    sink_log_uppers: HashMap<GlobalId, Antichain<T>>,
    history: ComputeCommandHistory<T>,
    pending_response: VecDeque<ActiveReplicationResponse<T>>,
}
Expand description

The internal state of the client.

This lives in a separate struct from the handles to the individual replica tasks, so that we can call methods on it while holding mutable borrows to those.

Fields

replica_ids: BTreeSet<ReplicaId>

IDs of connected replicas.

peeks: HashMap<Uuid, PendingPeek>

Outstanding peeks, to guide responses (and which to suppress).

subscribes: BTreeSet<GlobalId>

IDs of in-progress subscribes, to guide responses (and which to suppress).

uppers: HashMap<GlobalId, ReportedUppers<T>>

Reported upper frontiers for replicated collections and in-progress subscribes.

index_log_uppers: HashMap<GlobalId, ReportedUppers<T>>

Reported upper frontiers for arranged log collections.

Arranged log collections are special in that their IDs are shared between replicas, but only exist on replicas that have introspection enabled.

sink_log_uppers: HashMap<GlobalId, Antichain<T>>

Reported upper frontiers for persisted log collections.

Persisted log collections are special in that they are replica-specific.

history: ComputeCommandHistory<T>

The command history, used when introducing new replicas or restarting existing replicas.

pending_response: VecDeque<ActiveReplicationResponse<T>>

Responses that should be emitted on the next recv call.

This is introduced to produce peek cancelation responses eagerly, without awaiting a replica responding with the response itself, which allows us to compact away the peek in self.history.

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Attaches the current Context to this type, returning a WithContext wrapper. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Wrap the input message T in a tonic::Request
The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more