Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-40941

Migrate @@rpl_semi_sync_slave_enabled to per-connection

    XMLWordPrintable

Details

    Description

      In multi-master one can have semi-sync enabled for some connection and not for others by changing rpl_semi_sync_slave_enabled when connecting to the master.
      In the future we should change things so that semi-sync should be a parameter for CHANGE MASTER so that one can have different semi-sync options for each connection.
      monty's rejection on MDEV-32944

      It is unïntuitive that @@rpl_semi_sync_slave_enabled can be changed mid-replication, but only takes effect on new connection establishments.

      MDEV-32947 reported that @@rpl_semi_sync_slave_enabled beïng global is a bug because it can change mid-replication.
      It'd also be unïntuitive if changes to this variable only take effect after every IO thread stops, so it should be a per-connection configuration in practice.

      A new configuration is required, for directly changing the variable to the @@connection.variable syntax would break whatever compatibility it's still worth.
      (It becomes specific to @@default_master_connection when connection is not specified.)
      Though CHANGE MASTER rpl_semi_sync_slave_enabled, albeit verbose, would match this variable with MDEV-28302's conventions.

      @@rpl_semi_sync_slave_delay_master and @@rpl_semi_sync_slave_trace_level also make sense to migrate to per-connection, though this process can also expand their effects to non-semi-sync as well.
      MDEV-39583 will make @@rpl_semi_sync_slave_kill_conn_timeout obsolete.

      Attachments

        Issue Links

          Activity

            People

              ParadoxV5 Jimmy Hú
              ParadoxV5 Jimmy Hú
              Votes:
              0 Vote for this issue
              Watchers:
              1 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.