mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 16:48:58 +00:00
db8ba9e2e5
refactor(ecstore): migrate the bucket bandwidth monitor into InstanceContext (Phase 5 Slice 10) Phase 5 Slice 10 (backlog#939): move the bucket bandwidth monitor out of the process static into the per-instance InstanceContext. - InstanceContext gains `bucket_monitor: OnceLock<Arc<Monitor>>` with `init_bucket_monitor(num_nodes)` (set-once; returns false if already set) and `bucket_monitor() -> Option<..>`. - global.rs `init_global_bucket_monitor` / `get_global_bucket_monitor` keep their signatures and route through the current instance's context; the static is removed. The ignore-and-warn-on-reinit behavior is preserved (the warn stays in global.rs). Tests: the monitor is None until initialized, set-once (second init is a no-op), and independent across instances. Verification: cargo test -p rustfs-ecstore (21 instance-context tests green), cargo clippy -p rustfs-ecstore --all-targets (clean), make pre-commit (pass). Refs: backlog#939 (Phase 5, Slice 10).