Details
-
New Feature
-
Status: Needs Feedback (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
MXS-SPRINT-239, MXS-SPRINT-240, MXS-CAPACITY-25-4
Description
When demoting a primary, if it has rpl_semi_sync_master_enabled=ON and rpl_semi_sync_SLAVE_enabled = OFF, swap the values.
Do the inverse when promoting a replica.
If a server has neither/both enabled, do nothing.
With this, the monitor now requires the REPLICATION MASTER ADMIN privilege. The priv is only required if semisync replication roles need to be swapped.
When testing an initial implementation, an issue arose which somewhat ruins this feature: the values of rpl_semi_sync_master_enabled and rpl_semi_sync_slave_enabled revert to their config file values when server restarts. This means that any values MaxScale sets via "SET GLOBAL" are forgotten on restart. For example, if the primary server config file has
rpl_semi_sync_master_enabled=ON
rpl_semi_sync_slave_enabled=OFF
and a switchover occurs, MaxScale demotes the server and swaps the values. However, if the server then restarts, it would revert to the configured, wrong values and replicate asynchronously. To maintain the values, MaxScale would need to keep polling the values and, if wrong, set them again and then do STOP SLAVE; START SLAVE; to take the new values into use. It would be far easier to just enable both semisync modes in the config file.
Attachments
Issue Links
- relates to
-
MDEV-33465 an option to enable semisync recovery
-
- Closed
-