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

Very fast client and server may end up busy-looping a worker

    XMLWordPrintable

Details

    Description

      If both the client application and the database server are located on the same server where MaxScale is installed, it's possible for the client to send data fast enough and the server to consume it fast enough that the network buffers on the client side never become empty and on the server side never become full. This results in a "busy loop" where a single client monopolizes the worker as long as it manages to send data.

      An example of this can be seen with the MariaDB Connector/NodeJS test suite when configured to run large tests and with large packets. The test case 16M+ batch with 16M max_allowed_packet from the standard question mark without bulk suite is one example where this happens. The worst-case scenario on machines with limited CPU usage is that it triggers the SystemD watchdog which is how this was initially discovered when testing locally on small-ish VMs.

      The solution to this is to make the scheduling of fake events fairer by forcing them to go through the event loop once a certain limit has been exceeded.

      Attachments

        Activity

          People

            markus makela markus makela
            markus makela markus makela
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.