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

Reconnection requirements are too strict

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.3
    • Fix Version/s: 2.3.4
    • Component/s: readwritesplit
    • Labels:
      None

      Description

      The requirement to have an absolute guarantee on being able to restore the session state is too strict for pooled connections.

      In practice the pooled connections exhibit a cyclical pattern where each reuse of a connection causes certain statements to be executed. This could be solved by detecting said cycles but even a tiny change in each statement (e.g. a timestamp) would prevent simple comparisons.

      A crude but far more predictable method is to retain the most recent history while actively discarding any commands that are older than the configured value. This can be implemented by using the value of max_sescmd_history as the limit and by adding a prune_sescmd_history parameter that enables this pruning.

      There is one caveat: the history pruning has a possibility of causing inconsistent session states if the history size is shorter than the cycle length of session commands. Given that this is configurable, it can be avoided but careless use of the parameters can still cause unexpected behavior. As the default history length in 2.3 is 50 commands, it is relatively unlikely that this would have any negative side-effects.

        Attachments

          Activity

            People

            Assignee:
            markus makela markus makela
            Reporter:
            markus makela markus makela
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Git Integration