You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This means that the runtime servers are configured as follows (1 node online as writer, all are readers, the other shunned writers are backup writers). This seems to be correct.
Since the reader host is OFFLINE_HARD (at least for a few seconds) this means that existing connections are dropped (which we notice in the application as errors).
As described here the expected behaviour would be as following:
"If the user needs to take a node into maintenance mode, the user can simply set pxc_maint_mode to MAINTENANCE. With that, pxc_maint_mode is updated and the client connection updating it goes into sleep for x seconds (as dictated by pxc_maint_transition_period) before giving back control to the user. ProxySQL auto-detects this change and marks the node as OFFLINE. With this change ProxySQL avoids opening new connections for any DML transactions but continues to service existing queries."
Now obviously with the native ProxySQL/Percona integration it does not continue to service existing queries. As I understand it, the node should be marked as OFFLINE_SOFT to continue serving established connections until they become inactive.
Right now, the only workaround seems to be to implement a custom script via scheduler and configure the cluster not as Galera, but as a generic group replication hostgroup.
I'd appreciate any confirmation, tips or workaround for this issue.
The text was updated successfully, but these errors were encountered:
Problem:
Setting
pxc_maint_mode
toMAINTENANCE
orSHUTDOWN
marks the read node asOFFLINE_HARD
, resulting in dropped connections and errors in the application.Configuration:
A Percona XtraDB Cluster with three nodes and one ProxySQL host with the following version:
[root@XXXXXXXX proxysql]# proxysql --version
ProxySQL version 2.0.14-percona-1.1, codename Truls
[root@XXXXXXXX proxysql]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
All Percona nodes were added to mysql_servers in hostgroup 10:
The Galera hostgroup is configured as follows (note the write_is_also_reader=1 and max_writers=1):
This means that the runtime servers are configured as follows (1 node online as writer, all are readers, the other shunned writers are backup writers). This seems to be correct.
Current behaviour:
When I now set
pxc_maint_mode
toMAINTENANCE
one the active writer node (192.168.50.238)the runtime_mysql_servers takes the following state:
Since the reader host is
OFFLINE_HARD
(at least for a few seconds) this means that existing connections are dropped (which we notice in the application as errors).(Attached you will also find the proxysql.log)
Expected behaviour:
As described here the expected behaviour would be as following:
"If the user needs to take a node into maintenance mode, the user can simply set pxc_maint_mode to MAINTENANCE. With that, pxc_maint_mode is updated and the client connection updating it goes into sleep for x seconds (as dictated by pxc_maint_transition_period) before giving back control to the user. ProxySQL auto-detects this change and marks the node as OFFLINE. With this change ProxySQL avoids opening new connections for any DML transactions but continues to service existing queries."
Now obviously with the native ProxySQL/Percona integration it does not continue to service existing queries. As I understand it, the node should be marked as
OFFLINE_SOFT
to continue serving established connections until they become inactive.Right now, the only workaround seems to be to implement a custom script via scheduler and configure the cluster not as Galera, but as a generic group replication hostgroup.
I'd appreciate any confirmation, tips or workaround for this issue.
The text was updated successfully, but these errors were encountered: