Expand description

Functionality to reconcile commands between a storage controller and a storage server.

The StorageCommandReconcile struct implements GenericClient, which allows the controller to reconnect after restarts. It maintains enough state to get a newly connected instance up-to-date and matches existing installed objects with what the controller wants to provide.

StorageCommandReconcile is designed to live in a storaged process and liberally uses assert to validate the correctness of commands.

The contract between this and the storage controller is that identifiers are not re-used and describe the same object after restarts. Failure to do so will result in undefined behavior.

The reconciliation presents to a restarted storage controller as if the storage process was restarted as well. It brings the controller up-to-date by notifying it about the current upper frontiers.

Structs

Reconcile commands targeted at a storage host.