-
Notifications
You must be signed in to change notification settings - Fork 80
feat(cmapi): MCOL-6006: Disable failover when shared storage not detected #3661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: stable-23.10
Are you sure you want to change the base?
feat(cmapi): MCOL-6006: Disable failover when shared storage not detected #3661
Conversation
mariadb-AlanMologorsky
commented
Jul 18, 2025
- add Base api client
- add NodeController api client
- fix ClusterController Api client
- add NodeController in endpoints.py
- add 2 new endpoints to dispatcher: cluster/check-shared-storage and node/check-shared-file
- add check_shared_storage method into ClusterHandler class
- add set_shared_storage to node_manipulation t
- add reading shared_storage in failover/config.py
- fix is_shared_storage method in failover/config.py
- add check_shared_storage in NodeMonitor class
- fix some minor styling
ff027b5
to
92275c8
Compare
d70dff2
to
73a5abd
Compare
92ab8a2
to
5f24507
Compare
5f24507
to
440173e
Compare
440173e
to
a94684c
Compare
4ace6f1
to
1a1e03d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
(but the test needs fixing)
4bd79c0
to
9075d7f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current state of code looks good to me, the approval doesn't consider merge without fixes of tests, but the approach and the implementation look neat
eb0b2cf
to
2a0675e
Compare
b061400
to
8bfb2ce
Compare
add Base api client add NodeController api client fix ClusterController Api client add NodeController in endpoints.py add 2 new endpoints to dispatcher: cluster/check-shared-storage and node/check-shared-file add check_shared_storage method into ClusterHandler class add set_shared_storage to node_manipulation t add reading shared_storage in failover/config.py fix is_shared_storage method in failover/config.py add check_shared_storage in NodeMonitor class fix some minor styling
…I in memory stateful configuration - add stateful config distribution logic into endpoints.ConfigController (node endpoint) with fast "only_stateful_config" update logic - add stateful config logic into helpers.broadcast_new_config - add new function broadcast_stateful_config into helpers.py - port Alexander Presnyakov get_existing_db_roots function into node_manipulation.py from other branch - add new SharedStorageMonitor threaded compomemt for Failover it starts working with NodeMonitor component as a separate thread that checks shared storage state/health each 5 mins.
- Implemented Pydantic models and validation. - Added separated endpoint for broadcasting stateful config (next releases) - Fixed some not threadsafe AppStatefulConfig methods.
Changed config put request body validation to use Pydantic models.
- fixed enpoints.py put_config - improved request_models to support set_cluster_mode command - improved logging for shared file check - fix race condition while writing and reading shared temp file - changed delay between checking shared storage to 10 sec - fix tests
Was rebase error. Missed early stop the loop.
Add test_rebalance_noop_when_shared_storage_off
Now if failover turned off and one of the nodes failed we can see it in the mcs status respose as a offline value of the node state field. Optionally there could be error field with information.
ca2a038
to
56e245d
Compare
6b7c324
to
d644d80
Compare