Oracle recently announced the general availability of MySQL 8.2 , which includes support for read/write splitting . This long-awaited feature was introduced in the latest innovation release (an equivalent of a "release candidate"), which helps optimize database performance and scalability .
Read-write splitting allows applications to transparently direct all write traffic to read-write instances (primary/sources) and all read traffic to read-only instances, depending on the instance type (InnoDB Cluster or Replica). Cluster).
Frederic Descamps , MySQL community manager, explains:
"At large scale, we distribute reads across replicas, but this must be managed somehow in the application: pointing writes to one place and reads to another place. Since MySQL 8.2, MySQL Router can now identify reads and writes, and then route them to primary instances in the case of an InnoDB cluster, or to an asynchronous replication source for writes and to secondary instances or replicas for reads."
You can perform a simple PoC (proof of concept) yourself, using mysql-operator:
You will need to deploy the following manifests:
kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/deploy/deploy-crds.yaml" # CRDs kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/deploy/deploy-operator.yaml" # Operator kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/samples/sample-secret.yaml" # Secret (edit recommended) kubectl apply -f "https://github.com/mysql/mysql-operator/blob/8.2.0-2.1.1/samples/sample-cluster.yaml" # Cluster 3 instances 1 router