Implementation of the storage controller trait.
- Tokio tasks (and support machinery) for maintaining storage-managed collections.
- Tracks persist shards ready to be finalized, i.e. remove the ability to read or write them. This identifies shards we no longer use, but did not have the opportunity to finalize before e.g. crashing.
- A tokio tasks (and support machinery) for dealing with the persist handles that the storage controller needs to hold.
- Rehydration of storage replicas.
- A tokio task (and support machinery) for producing storage statistics.
- A storage controller for a storage instance.
- A wrapper struct that presents the adapter token to a format that is understandable by persist and also allows us to differentiate between a token being present versus being set for the first time.