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

Semi-sync Replication Group ACK

    XMLWordPrintable

Details

    • New Feature
    • Status: Stalled (View Workflow)
    • Major
    • Resolution: Unresolved
    • None
    • Replication
    • None

    Description

      In addition to the fixing semi-sync waiters to use their own condition variable (MDEV-33551), semi-sync replication should also implement group ACK, so a slave can send a single ACK for a group of transactions. To align rpl_semi_sync_master_wait_point=AFTER_COMMIT logic with binlog group commit, this wait should be placed within the leader thread's commit logic after storage engine commit. For wait_point=AFTER_SYNC, the wait_point should be moved outside of its current loop to ack each written transaction, but for the group of transactions.

      An additional complication comes with large transactions. If the last transaction in a binlog group commit is very large, it isn't desirable for earlier transactions (especially very small ones) to have to wait for the group ACK containing later big ones. To circumvent this, we can implement a new maximum transaction size variable to indicate that a new ACK-group should be started when a transaction is larger than that size.

      Attachments

        Issue Links

          Activity

            People

              bnestere Brandon Nesterenko
              bnestere Brandon Nesterenko
              Votes:
              1 Vote for this issue
              Watchers:
              6 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.