mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
1.6 KiB
1.6 KiB
Storage, Control Plane, And Background Controllers
This document defines migration boundaries for the storage hot path and adjacent control-plane responsibilities.
Storage API Contracts
Storage API contracts must not absorb implementation details from ECStore or the reader pipeline.
Out of scope for the contract layer:
- KMS/SSE implementation.
- Range and compression behavior.
- Erasure coding and bitrot logic.
- Remote disk transport and recovery.
No-drift behavior:
- Object-to-set hash remains unchanged.
- Write quorum remains unchanged.
- Reader decryption, etag/checksum, version, and delete-marker behavior remain unchanged.
- Public compatibility paths remain available through temporary re-exports or wrappers during pure moves.
Cluster Control Plane
ClusterControlPlane starts as a read-only facade inside crates/ecstore/src/cluster.
Do not create a standalone cluster crate until internal dependencies are stable.
Initial scope:
- Topology snapshot.
- Membership snapshot.
- Lock registry snapshot.
- Peer health snapshot.
- Pool state snapshot.
Risk controls:
- Distributed lock quorum remains per set.
- RemoteDisk suspect/offline/recovery, timeout, and connection eviction semantics must not be simplified.
- Health impact behavior must be feature-gated if it changes production behavior.
Background Controllers
Scanner, heal, lifecycle, replication, config reload, metrics, and auto-tuning controllers should move behind explicit controller boundaries after lifecycle contracts are stable.
The first controller work should be read-only status and shutdown ordering, not behavior changes.