High Availability

Overview

Enterprise applications often require the ability to run continuously for extended periods of time with little or no user-facing downtime.

High Availability Solutions

MariaDB database products support several different high availability solutions.

MariaDB Replication

MariaDB Replication supports high availability.

Replica servers replicate data from a primary server asynchronously or semi-synchronously using binary logs. Upon primary server failure, a replica server can be promoted to a primary server.

Galera Cluster

Galera ClusterGalera Cluster supports high availability.

Cluster nodes replicate data using certification-based replication implemented by the Galera 3 or Galera 4 plugin, depending on the version of MariaDB. Upon node failure, the cluster automatically recovers, as long as remaining nodes have quorum.

MariaDB Enterprise ColumnStore

MariaDB Enterprise ColumnStore supports high availability in multi-node deployments.

ColumnStore nodes share data using shared storage. Upon node failure, shared storage can still be accessed by remaining nodes.

MariaDB Xpand

MariaDB Xpand supports high availability.

Xpand divides tables and indexes into slices, and it distributes those slices among all the nodes. Xpand maintains replicas of each slice, so that it can recover from a node failure without loss of data.

MariaDB Xpand supports multiple topologies. MariaDB products can be deployed in many different topologies. The topology on this page is representative. MariaDB products can be deployed to form other topologies, leverage advanced product capabilities, or combine the capabilities of multiple topologies.

Xpand Topology

For additional information, see "MariaDB Xpand Topology".

Automatic Failover with MaxScale

MariaDB MaxScale augments HA solutions, providing additional automatic failover capabilities. The specific capabilities depend on the high availability solution that is used:

HA Solution

Description

MariaDB Replication

MaxScale's MariaDB Monitor (mariadbmon) detects primary server failure and promotes the most up-to-date replica based on Global Transaction ID (GTID), waits for that replica to execute any transactions in its relay log, and begins routing queries to it.

Galera ClusterGalera Cluster

MaxScale's Galera Monitor (galeramon) is used to minimize application impact upon server failure. Additionally, MaxScale may be used to assign primary and replica roles to database instances within a cluster to support read/write traffic splitting and to minimize the risk of certification failures.

MariaDB Enterprise ColumnStore

MaxScale's MariaDB Monitor (mariadbmon) determines which node is the primary server, and automatically performs failover upon primary server failure.

MariaDB Xpand Topology

MaxScale's Xpand Monitor (xpandmon) determine which nodes are currently part of the deployment, and it only routes connections to nodes that are available.

MaxScale's Read/Write Split Router (readwritesplit) includes several configurable features to minimize the impact of failover on client connections:

Feature

Description

Automatic Reconnection

Replaces back-end server connections to a failed server with connections to a different server, rather than closing the connections.

Transaction Replay

Ensures the execution of prior transactions before additional queries are routed to different Servers, instead of closing the connection and requiring the application to roll the transaction back and retry.

Connection Maintenance and Restore

Ensures all servers handling traffic for a connection have the same session system variables, user-defined variables, etc.

Read Retry

Allows MaxScale to route incomplete queries to a different replica rather than returning an error or closing the client connection.

Delayed Retry

Allows MaxScale to delay and retry write queries received after a primary fails and before automatic failover completes, rather than returning an error or closing the client connection

Deploy MariaDB Xpand

MariaDB Xpand supports high availability.

Deploy MariaDB Xpand with the Xpand topology.

For additional information, see "MariaDB Xpand Topology".