Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-5370

MariaDB Monitor failover/switchover/rejoin should alter semisync enabled roles

    XMLWordPrintable

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

          Activity

            People

              esa.korhonen Esa Korhonen
              esa.korhonen Esa Korhonen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.