A controller that provides an interface to the storage layer.
The storage controller curates the creation of sources, the progress of readers through these collections, and their eventual dropping and resource reclamation.
The storage controller 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_source(). Once created, the controller holds
a read capability for each source, which is manipulated with
Eventually, the source is dropped with either
drop_sources() or by allowing compaction to the
- Describes a request to create a source.
- State maintained about individual collections.
- State maintained about individual exports.
- A channel that allows you to append a set of updates to a pre-defined
- A cursor over a snapshot, allowing us to read just part of a snapshot in its consolidated form.
- Describes how data is written to the collection.
- Describes how data is written to a collection maintained outside of the storage controller.