-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Add semi-sync monitor to unblock primaries blocked on semi-sync ACKs #17763
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
Merged
+1,642
−30
Merged
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
771dc7e
feat: add the first iteration of semi-sync watcher
GuptaManan100 4dcaf54
feat: add semisync recovery sql and other missing pieces in the code
GuptaManan100 8a47cc0
test: add a test to check semi-sync block issue
GuptaManan100 bf9b845
feat: address review comments
GuptaManan100 955d0c0
feat: wire up the monitor to the state manager and the tablet server
GuptaManan100 3124339
feat: fix some bugs
GuptaManan100 77f964f
Merge remote-tracking branch 'upstream/main' into semi-sync-watcher
GuptaManan100 2b2708f
feat: add the capability to the monitor to keep track of outstanding …
GuptaManan100 0be0743
feat: add the capability to run ERS to VTOrc when it detects semi-syn…
GuptaManan100 d33b460
feat: added test to verify VTOrc runs an ERS when semi-sync is blocke…
GuptaManan100 6092978
feat: make the monitor interval configurable
GuptaManan100 7286419
feat: add a gauge for the monitor
GuptaManan100 4725dd9
feat: move the semi-sync monitor from the tabletserver to tablet mana…
GuptaManan100 a8d2cbd
test: poll the new gauge in the test
GuptaManan100 da4a8f8
feat: fix bug in isClosed function where we locked twice :facepalm:
GuptaManan100 6cf02ab
test: add comprehensive testing for the semi-sync monitor
GuptaManan100 942eaf0
test: fix tests by doing nil checks and adding semi-sync monitor to f…
GuptaManan100 3a3db2a
test: add demote primary test that makes sure we block when semi-sync…
GuptaManan100 eaa9246
summary: add summary changes to make users aware of the change
GuptaManan100 a571e48
test: fix more tests by updating expectations
GuptaManan100 05c3d2e
feat: make the test less flaky and improve flag documentation
GuptaManan100 dddc6e5
feat: address review comments
GuptaManan100 9995a0d
feat: change the read query to be more specific
GuptaManan100 cdd609d
test: increase time for eventual checks
GuptaManan100 ffd5b50
feat: also mark semi-sync unblocked after a write succeeds
GuptaManan100 3bcbd3b
feat: rename some fields
GuptaManan100 ee098c6
feat: add a new counter for tracking number of errors
GuptaManan100 4373407
feat: use remote operation timeout constant instead of direct 15 seco…
GuptaManan100 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| /* | ||
| Copyright 2025 The Vitess Authors. | ||
|
|
||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||
| you may not use this file except in compliance with the License. | ||
| You may obtain a copy of the License at | ||
|
|
||
| http://www.apache.org/licenses/LICENSE-2.0 | ||
|
|
||
| Unless required by applicable law or agreed to in writing, software | ||
| distributed under the License is distributed on an "AS IS" BASIS, | ||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| See the License for the specific language governing permissions and | ||
| limitations under the License. | ||
| */ | ||
|
|
||
| CREATE TABLE IF NOT EXISTS semisync_heartbeat | ||
| ( | ||
| ts BIGINT UNSIGNED NOT NULL, | ||
| PRIMARY KEY (`ts`) | ||
| ) ENGINE = InnoDB CHARSET = utf8mb4 |
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.