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

Replace the slave-side graceful self-KILL with the master-side COM_QUIT handing in Semi-Synchronous Replication

    XMLWordPrintable

Details

    Description

      In a typical client-server connection, including Asynchronous Replication, the client sends a COM_QUIT command to the server as it closes.

      Instead of this signal, a Semi-Synchronous Replica spawns a duplicate connection for the sole purpose of running a KILL original_connection command.
      This implementation is not only inconsistent (a sign of poor design) but also error-prone (see § Issue Links).

      This difference likely originated from the fact that, until MDEV-32551/MDEV-32385, the protocol ACK receiver did not recognize the COM_QUIT signal and errored when encountering one.
      But now that MDEV-32551 pioneers the pre-existing disconnection signal of the base client-server protocol, this master-side handling can replace and remove (if it hasn't already made obsolete) this extraneous and fragile slave self-KILL, including the various bugfixes that try to keep these shambles together.

      Attachments

        Issue Links

          Activity

            People

              ParadoxV5 Jimmy Hú
              ParadoxV5 Jimmy Hú
              Jimmy Hú Jimmy Hú
              Brandon Nesterenko Brandon Nesterenko
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 2d
                  2d
                  Remaining:
                  Time Spent - 0.25d Remaining Estimate - 1.75d
                  1.75d
                  Logged:
                  Time Spent - 0.25d Remaining Estimate - 1.75d
                  0.25d

                  Git Integration

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