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

[PATCH] Slow connections with thread pool and replication

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • 5.5(EOL), 10.0(EOL)
    • 5.5.47, 10.0.23, 10.1.10
    • OTHER, Replication
    • Debian Linux 7, Linux 3.10, 4 cores / 8 threads, official MariaDB packages
    • 10.1.9-3

    Description

      If MariaDB is set up with pool-of-threads and a replication slave connects and issues the COM_BINLOG_DUMP command, every nth connection (in my setup every 8th) can take as much as 1 second to establish. That is, the TCP connection is completed fast, but it takes a long time (relatively speaking) before the server greeting is sent.

      The reason is apparently that the binlog dump thread doesn't notify the thread pool that it is waiting, so the active_thread_count remains > 0 and queue_put() will not do anything. Instead, the thread group is activated by the thread timer (thread_pool_stall_limit), which with the default value of 500ms give us a worst case close to 1 sec.

      I only have a superficial understanding of the MariaDB core, but it seems that mysql_binlog_send() ought to call thd_wait_begin. Either something like that or the active_thread_count check should be removed in queue_put().

      Attachments

        Activity

          People

            wlad Vladislav Vaintroub
            pchri03 Peter Nørlund
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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