Expand description
A controller that provides an interface to the compute layer, and the storage layer below it.
The compute controller manages the creation, maintenance, and removal of compute instances. This involves ensuring the intended service state with the orchestrator, as well as maintaining a dedicated compute instance controller for each active compute instance.
For each compute instance, the compute controller curates the creation of indexes and sinks installed on the instance, the progress of readers through these collections, and their eventual dropping and resource reclamation.
The state maintained for a compute instance can be viewed as a partial map from GlobalId
to
collection. It is an error to use an identifier before it has been βcreatedβ with
create_dataflow()
. Once created, the controller holds a read capability for each output
collection of a dataflow, which is manipulated with set_read_policy()
. Eventually, a
collection is dropped with drop_collections()
.
Created dataflows will prevent the compaction of their inputs, including other compute collections but also collections managed by the storage layer. Each dataflow input is prevented from compacting beyond the allowed compaction of each of its outputs, ensuring that we can recover each dataflow to its current state in case of failure or other reconfiguration.
Modules§
- Errors returned by the compute controller.
- instance πA controller for a compute instance.
- replica πA client for replicas of a compute instance.
- sequential_
hydration πSequential dataflow hydration support for replicas.
Structs§
- Collection π
- The frontiers of a compute collection.
- A controller for the compute layer.
- Replica configuration
- Logging configuration of a replica.
- Instance
State π
Enums§
- Responses from the compute controller.
- Notification and summary of a received and forwarded
crate::protocol::response::ComputeResponse::PeekResponse
.
Traits§
- A composite trait for types that serve as timestamps in the Compute Controller.
Into<Datum<'a>>
is needed for writing timestamps to introspection collections.
Type Aliases§
- Introspection
Updates π - Storage
Collections π