High Availability

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

Replication

MariaDB Enterprise Server and MariaDB Community Server support several different replication options that enable high availability:

Replication

Description

MariaDB Replication

Asynchronous and semi-synchronous replication that relies on binary logs.

Galera Cluster

Certification-based replication that relies on the Galera 3 or Galera 4 plugin, depending on the version of MariaDB.

ColumnStore

ColumnStore supports highly available multi-node deployments.

Xpand

MariaDB Xpand is highly available by design.

Replication

Supported by MariaDB Enterprise Server

Supported by MariaDB Community Server

MariaDB Replication

Yes

Yes

Galera Cluster

Yes

Yes

Multi-Node ColumnStore

Yes

No

Xpand

Yes

No

Automatic Failover with MaxScale

MaxScale's automatic failover capabilities depend on the specific replication solution that is used.:

Replication

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 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.

Multi-Node ColumnStore

MaxScale's ColumnStore Monitor (csmon) determines which node is the primary server, and automatically adapts upon primary server failure.

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