勤快学

PhxSQL 教程

PhxSQL是一个兼容mysql、服务高可用、数据强一致的关系型数据库集群。PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性(PhxSQL 教程)。

PhxSQL基于Percona 5.6开发。Percona是MySQL的一个分支,功能和实现与MySQL基本一致。因此本文后续直接把MySQL作为讨论对象。 

MySQL半同步复制存在缺陷,在Master进行切换的场景下,数据难以保证一致。

当旧Master复制失败时,旧Master和Updated Slave(已收到Binlog的Slave)需要回滚数据。

当Master进行切换时,旧Master仍有部分Client进行读写。

关于MySQL半同步复制的数据一致性问题可查看微信后台团队公众号文章MySQL半同步复制的数据一致性探讨。

PhxSQL的设计是为了解决MySQL半同步复制的不足,使MySQL集群在Master切换过程中保证数据的一致。