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

Critical read error with MX on sync forced mariadb cluster

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Not a Bug
    • Affects Version/s: 2.5.13
    • Fix Version/s: N/A
    • Component/s: N/A
    • Labels:
      None
    • Environment:
      Debian 10.10, v10.5.11-MariaDB Galera cluster

      Description

      Hello,

      I'm using latest maxscale on Debian 10.10 with 10.5.11-MariaDB with a read-write split router configuration.

      The mariadb galera cluster nodes have syncing forced enabled with this parameter:
      wsrep_sync_wait=7

      That means consistency is enabled on the cluster at the cost of performance, so that if something is written at moment t, when a user reads at moment t+1 on another node, this node has to wait to be synced with all t-time writesets before answering.

      Nevertheless, a critical read error happens every day in the process of inserting an item and then reading it, using Maxscale's read-write split router.

      The read part fails as if the nodes of the cluster were not synced as it is not finding the just inserted row.

      My MX configuration :

      [maxscale]
      threads=auto
      #log_notice=1
      #log_debug=1
      #log_info=1
      syslog=false
      auth_connect_timeout=3s
      auth_read_timeout=3s
      auth_write_timeout=3s
       
      [MySQLMonitorLocal]
      type=monitor
      module=galeramon
      servers=marianode1,marianode2,marianode3
      user=maxscale
      password=hidden
      monitor_interval=1000
      backend_connect_timeout=3s
      backend_write_timeout=3s
      backend_read_timeout=3s
       
      # =============== Services ================ #
       
      [RW2]
      type=service
      router=readwritesplit
      # deprecated
      #localhost_match_wildcard_host=1
      servers=marianode1,marianode2,marianode3
      max_slave_connections=2
      user=maxscale
      password=hidden
      max_connections=350
      strip_db_esc=true
       
      # ===============  Listeners ================ #
       
      [RWListenerLocal]
      type=listener
      service=RW2
      protocol=MariaDBClient
      port=3310
      address=127.0.0.1
       
      [RWListenerLocalSocket]
      type=listener
      service=RW2
      protocol=MariaDBClient
      socket=/var/lib/maxscale/rwsplit.sock
       
      # =============== Servers ================ #
       
      [marianode1]
      type=server
      address=10.100.20.50
      port=3306
      protocol=MariaDBBackend
      #persistpoolmax=100
      #persistmaxtime=60s
      #rank=primary
       
      [marianode2]
      type=server
      address=10.100.20.51
      port=3306
      protocol=MariaDBBackend
      #persistpoolmax=100
      #persistmaxtime=60s
      #rank=secondary
       
      [marianode3]
      type=server
      address=10.100.20.52
      port=3306
      protocol=MariaDBBackend
      #persistpoolmax=100
      #persistmaxtime=60s
      #rank=primary
      

      Any clues ?

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            jom Maiavria
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Git Integration