-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Switch to use semisync source / replica plugins #15791
Switch to use semisync source / replica plugins #15791
Conversation
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #15791 +/- ##
=======================================
Coverage 68.43% 68.44%
=======================================
Files 1558 1558
Lines 195971 196036 +65
=======================================
+ Hits 134121 134169 +48
- Misses 61850 61867 +17 ☔ View full report in Codecov by Sentry. |
cd39637
to
d860bb2
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.
Looks good to me!
Nice work. I like that you handled some of the tech-debt around not passing a context to some of these functions too. |
d860bb2
to
bc178bb
Compare
The plugins with the old terminology are deprecated and will be removed in the future. In MySQL 8.4.0 also the old terminology for regular replication is removed. This starts the move to use the new style. Since MySQL 8.0.26 the new semisync plugin is available, so we should start using it from that version on. This means we also need new default MySQL cnf files to set up things correctly. We add here a mysql8026.cnf and also a pre-emptive mysql84.cnf. The latter is needed to start the work in the future for MySQL 8.4.0. The main change here is that the deprecated mysql_native_password plugin needs to be explicitly enabled. Removing our usage of mysql_native_password is another separate significant effort. The main issue there is how we want to deal with certificates etc. which end up being required for replication if you want to use caching_sha2_password which adds a whole layer of complexity we've never had to deal with. Signed-off-by: Dirkjan Bussink <[email protected]>
bc178bb
to
a2342d8
Compare
Signed-off-by: Dirkjan Bussink <[email protected]>
The plugins with the old terminology are deprecated and will be removed in the future. In MySQL 8.4.0 also the old terminology for regular replication is removed.
This starts the move to use the new style. Since MySQL 8.0.26 the new semisync plugin is available, so we should start using it from that version on.
This means we also need new default MySQL cnf files to set up things correctly. We add here a mysql8026.cnf and also a pre-emptive mysql84.cnf. The latter is needed to start the work in the future for MySQL 8.4.0. The main change here is that the deprecated mysql_native_password plugin needs to be explicitly enabled.
Removing our usage of mysql_native_password is another separate significant effort. The main issue there is how we want to deal with certificates etc. which end up being required for replication if you want to use caching_sha2_password which adds a whole layer of complexity we've never had to deal with.
Related Issue(s)
Part of #11716
Checklist