Understanding MaxScale's Read/Write Split Router

Overview

MaxScale's Read/Write Split Router (readwritesplit) performs query-based load balancing. For each client connected to MaxScale, it opens up connections to multiple back-end database servers. When the client sends a write query to MaxScale, it routes the query to the connection opened with the primary server. When the client sends a read query to MaxScale, it routes the query to a connection opened with one of the replicas.

When to Use the Read/Write Split Router?

The Read/Write Split Router (readwritesplit) allows you to:

  • Perform query-based load balancing.

  • Route client connections to multiple servers simultaneously.

  • Route write queries to primary and read queries to replicas.

  • Automatically reconnect clients to the new primary after failover or switchover.

  • Automatically replay transactions on the new primary after failover or switchover.

  • Automatically retry failed queries.

  • Enforce causal reads to avoid reading stale data caused by slave lag.