OneSQL :: OneSQL & OneProxy对MySQL 5.7 Group Replication的支持

前天MySQL官方发布5.7.17,基于Paxos技术的Group Replication插件也正式GA了,极大地提升了MySQL胜任关键业务场的支持能力。平民软件从5.7.15 Lab版本开始就学习和测试Group Replication功能了,并在OneProxy for MySQL中增加了对Group Replication的支持,也于昨天发布OneSQL 5.7.17版本,下面将简称Group Replication为GR。

在OneProxy for MySQL中,在单Primary模式下,可以自动发现MySQL GR集群中的主节点,当集群中的Primary节点发生变化时,可以在1秒钟内进行负载切换(参考设置)。当GR集群为多主模式时,OneProxy中有定制的策略(对Galera集群也同样生效),可以相对固定地选择一台作为写入节点,在节点发生故障时,才挑选另外的健康结点作为写入结点;也可以设置成多写模式,针对每一个写请求,随机挑选一个节点进行写入。

当使用OneProxy进行大表分片时,还可以按分片进行路由,不同的分片会选择不同的集群节点,相同的分片则相对固定地使用同一集群结点,既分担了写流量,又最大化地避免了更新冲突(参考write_shard策略),如下图所示:

oneproxy_shard_load_balance

也可以根据用户名进行结点路由,不同用户登录会选择不同的集群节点,可有效分担读写流量,也无更新/事务锁冲突,可更加有效地发挥集群的性能,使得MySQL Group Replication具有良好的Scale Out能力。如下图所示:

oneproxy_groupreplication_user_route

在OneSQL里,所有补丁与GR无任何冲突,多队列线程池独立日志线程等可以提升OneSQL性能的补丁,可在不削弱数据保护等级(OneSQL里永远实时刷出InnoDB Redo Log & Binlog,无法更改配置)的情况下提升GR集群的性能,即在sync_binlog=1的情况下达到sync_binlog=0的性能。OneSQL优异的事务并发性能,也将为GR集群所用。

mysql56_sysbench_oltp_benchmark

OneSQL for MySQL的GR定制版本,除OneSQL for MySQL外,更将Group Replication所必须的参数设置成默认值,以简化参数配置的工作,方便DBA的运维工作。