Using Cooperative Locking for HA with MaxScale's MariaDB Monitor
MaxScale's MariaDB Monitor (mariadbmon) monitors MariaDB replication deployments.
When multiple MaxScale instances are used in a highly available deployment, MariaDB Monitor needs to ensure that only one MaxScale instance performs automatic failover operations at a given time. It does this by using cooperative locks on the back-end servers.
How MariaDB Monitor uses Cooperative Locks
When cooperative locking is enabled for MariaDB Monitor, it tries to acquire locks on the back-end servers with with GET_LOCK() function. If a specific MaxScale instance is able to acquire the lock on a majority of servers, then it is considered the primary MaxScale instance, which means that it can handle automatic failover.
Configuring Cooperative Locking
Configure cooperative locking by configuring the
cooperative_monitoring_locks
parameter for the MariaDB Monitor inmaxscale.cnf.
It has several possible values.
Value
Description
none
Do not use any cooperative locking. This is the default value.
majority_of_all
Primary monitor requires locks on a majority of servers, even those which are down.
majority_of_running
Primary monitor requires locks on a majority of running servers.
For example:
[repl-cluster]
type = monitor
module = mariadbmon
...
cooperative_monitoring_locks = majority_of_running
Restart the MaxScale instance.
$ sudo systemctl restart maxscale
This page is: Copyright © 2025 MariaDB. All rights reserved.
Last updated
Was this helpful?