fix(storage): sync transition tier config across peers#2918
Merged
Conversation
Contributor
|
CLA requirements are satisfied for this pull request. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR ensures transition tier configuration changes are consistently applied across a RustFS cluster by reloading the latest config before local mutations and triggering peer nodes to reload after a successful save via the internode notification/RPC path.
Changes:
- Implement
load_transition_tier_configRPC onNodeServiceto reloadGLOBAL_TierConfigMgrfrom the object store. - Reload tier config from the object store before Add/Edit/Remove tier admin operations, and propagate the update to peers after local save.
- Add a regression test ensuring peer propagation reports unreachable peers for transition-tier reload notifications.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| rustfs/src/storage/rpc/node_service.rs | Implements the peer RPC handler that reloads transition tier config from the object store and updates tests accordingly. |
| rustfs/src/admin/handlers/tier.rs | Reloads tier config before mutations and triggers best-effort peer reload notifications after local save for add/edit/remove. |
| crates/ecstore/src/notification_sys.rs | Adds a focused test covering unreachable peer reporting for transition-tier config reload propagation. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues
Fixes #2153
Summary of Changes
load_transition_tier_config.Verification
cargo fmt --all --checkcargo test test_unimplemented_rpcs --package rustfs --lib -- --nocapturecargo test test_load_transition_tier_config_no_object_layer --package rustfs --lib --ignored --nocapturecargo test load_transition_tier_config_reports_unreachable_peers -p rustfs-ecstore --lib -- --nocapturecargo test load_bucket_metadata_reports_unreachable_peers -p rustfs-ecstore --lib -- --nocaptureNUM_CORES=1 CARGO_BUILD_JOBS=1 TEST_THREADS=1 CARGO_INCREMENTAL=0 CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 make -f <(printf '.NOTPARALLEL:\ninclude Makefile\n') pre-commitImpact
Transition tier configuration changes are now reloaded from shared storage before mutation and propagated to peer nodes after a successful local save. Peer propagation failures are logged and do not roll back the already-saved local admin operation.
Additional Notes
cargo-nextestwas not installed locally, somake pre-commitused the repository fallback tocargo test.Thank you for your contribution! Please ensure your PR follows the community standards (CODE_OF_CONDUCT.md). If this is your first contribution, review the CLA document and sign it by commenting
I have read and agree to the CLA.on the PR.