MaxScale Redundancy on MariaDB SkySQL

MariaDB SkySQL is designed for production and dev/test workloads of all sizes. Among other features, MariaDB MaxScale routes queries and load balances, and in SkySQL does so to distributed and replicated services. To best support the needs of mission-critical production workloads, MariaDB SkySQL now includes a MaxScale Redundancy option which can be selected at the time of service launch, enabling the deployment of multiple MaxScale load balancers for high availability.

This feature is accessed when launching a Distributed SQL, HA (Primary/Replica), Analytics, or Galera service on MariaDB SkySQL by clicking the “MaxScale Redundancy” checkbox. With this option, you can choose the size of MaxScale load balancer to deploy. For Distributed SQL services, you can deploy up to 5 MaxScale instances to enable scaling of max concurrent connections.

MariaDB MaxScale Redundancy
Operations that modify a topology, such as failover or switchover are particularly sensitive. Historically these have been safe only when running a single MaxScale. The use of multiple MaxScale instances is now possible through MaxScale’s cooperative monitoring feature, which is used when SkySQL’s MaxScale Redundancy is enabled.

When multiple MaxScale instances are running, a single primary is assigned responsibility for the failover and switchover operations. The decision about which MaxScale will serve as primary is accomplished through server locks.

Every active MaxScale instance for the SkySQL service attempts to acquire the same lock on all the monitored database instances. The MaxScale that acquires the majority of locks (e.g., 2 out of 3) is the primary MaxScale and is responsible for any operations that modify the topology, such as failover or switchover. The primary MaxScale is also the MaxScale that determines which database server is the primary server and will receive writes from the ReadWriteSplit-router.

The addition of MaxScale Redundancy in SkySQL provides another option to customize your cloud database to meet business requirements for cost-effective scalability and availability.