Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
2.5.13
-
None
-
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 ?