Galera 将死 — MySQL Group Replication 发布

MySQL Group Replication GA

很多同学表示昨天的从你的全世界路过画风不对,好在今天MySQL界终于有大事情发生可作为聊资。话说,当昨天小伙伴们沉浸于双12的买买买节奏中,孰料远在美国西海岸的Oracle官方放出了最新的MySQL 5.7.17版本。更为重要的是,MySQL Group Replication(下简称MGR)终于来了。

在之前的MySQL的一致性世界的文章中,Inside君已经表示腾讯基于Paxos的强一致方案虽好,但官方基于Paxos的方案早已箭在弦上,作为第三方去做这样功能的开发并不见得能有很好的收益。

什么是MGR

MGR准确来说是MySQL官方推出的高可用解决方案,基于原生复制技术,并以插件的方式提供。其包含下面的特性:

复制的管理操作变得更为自动化,还在Backup + CHANGE MASTER建复制你就out了;

通过Paxos协议提供数据库集群节点数据强一致保证,扫清了MySQL进入金融行业最后的障碍。打脸了淘宝阳振坤老师对于MySQL无法支持强一致的论调;

集群间所有节点可写入,这是很多同学梦寐以求的功能,解决了单个集群的写入性能,所有节点都能读写,不过现实还是有些残酷;

解决网络分区导致的脑裂问题,提升复制数据的可靠性。

有小伙伴也把MGR称为MySQL版的RAC。当然,这两者架构上还是有很大的差别,MGR是Share Nothing,Oracle RAC是Share Everything。

Galera寿终正寝

熟悉Galera的同学肯定会说,MGR和Gelera非常相像。而已有一部分不怕死的公司在生产环境尝试用Galera高可用解决方案,甚至是在某些银行。但他们遇到的问题却相当严重,相信真正在生产环境中使用过Galera的同学必定会同意我的观点。

相比Galera,MGR的优点在于:

MySQL官方出品,品控有保障,后续技术有支持;

MGR使用的Paxos协议,性能更好,即使MGR集群节点数再多,性能也能平稳。解决了Gelera实际只能用三个节点,网络抖动造成的性能和稳定性问题;

支持多个操作系统平台,而Galera仅支持Linux系统

先看多个主节点(multi-master)下,MGR的性能提升,即多个节点同时读写测试[1]:

当参数flow-control-mode设置为disable时,即允许集群节点间存在延迟,这时随着节点数的不断增加,MGR集群的性能可有明显地提升。若为保障读一致性,则MGR集群性能在5个节点时,几乎于单MySQL实例性能相当。

小伙伴们最关心的MGR vs Galera[2]:

无需多言,上面的测试结果基本宣告了Galera的死亡。曾经,Galera是款伟大而又引领时代的产品,死于2016年12月12日。

MGR的限制

仅支持InnoDB表,并且每张表一定要有一个主键,用于做write set的冲突检测;

必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write set

COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景

目前一个MGR集群最多支持9个节点

不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚

二进制日志不支持binlog event checksum

MongoDB会不会成为下一个Galera

MGR只是Oracle官方野心的第一步,Inside君更期待未来InnoDB Cluster[3]的GA。从目前的发展路线图看,未来官方会将其打造成一个分布式的文档数据库集群,对手当然是更为强大的MongoDB。但是,一个支持事务,支持行级锁与MVCC,支持数据强一致保障,基于互联网最流行与稳定的MySQL的分布式文档数据库,又有谁能拒绝这样的诱惑?

参考文献

http://mysqlhighavailability.com/zooming-in-on-group-replication-performance/

http://mysqlhighavailability.com/performance-evaluation-mysql-5-7-group-replication/

https://dev.mysql.com/doc/mysql-innodb-cluster/en/

文章转载自 开源中国社区[https://www.oschina.net]

时间: 2024-10-30 10:34:32

Galera 将死 — MySQL Group Replication 发布的相关文章

Galera将死——MySQL Group Replication正式发布

2016-12-14 来源:InsideMySQL 作者:姜承尧 MySQL Group Replication GA 很多同学表示昨天的从你的全世界路过画风不对,好在今天MySQL界终于有大事情发生可作为聊资.话说,当昨天小伙伴们沉浸于双12的买买买节奏中,孰料远在美国西海岸的Oracle官方放出了最新的MySQL 5.7.17版本.更为重要的是,MySQL Group Replication(下简称MGR)终于来了. 在之前的MySQL的一致性世界的文章中,Inside君已经表示腾讯基于Pa

公开课发布《MySQL Group Replication思想》

0.导读 央视网络国际有限公司资深MySQL专家古雷老师分享<MySQL Group Replication思想>. 1.活动总结 昨天晚上,知数堂培训邀请到央视网络国际有限公司资深MySQL专家古雷老师分享<MySQL Group Replication思想>主题.形象的通过马农.砖家与运韦合伙种地.放鸽子.鸽子间如何相互通信协调的故事,让我们对MySQL Group Replication的基础原理有了深刻认识. 本次分享通过"IT大咖说"平台进行,相关的课

MySQL Group Replication小试

   最近看了下MySQL Group Replication的内容,因为发布的时间不是很长,可以算是一个新鲜玩意,而且因为它特有的意义,这个特性显得更加意味深长.   我接触Oracle的时间要长一些,所以很多时候都喜欢带着对比的眼光来看,单着自己尝试着用了下这个特性,感觉一下子让我找到了当年学习Oracle 10g RAC时的感觉,里面还是有一些小问题,而且还不少,眼巴巴的看着报错,但是日志又很有限,查阅资料,竟然不是bug就是找不到一些相关的信息,所以有时候有种信息孤岛的感觉.   官网的

To MGR or Not MGR? Review of MySQL Group Replication

MySQL Group Replication GA On December 12, 2016, Oracle released exciting news to the MySQL circle. It officially launched version 5.7.17 of MySQL, which includes the long-awaited MySQL Group Replication (MGR). This article provides insights on the b

Mysql group replication复制原理

前言:          Mysql版本5.7.17推出Mysql group replication(组复制),相对以前传统的复制模式(异步复制模式async replication 及半同步复制模式semi-sync replication),一个主,对应一个或多个从,在主数据库上执行的事务通过binlog复制的方式传送给slave,slave通过 IO thread线程接收将事务先写入relay log,然后重放事务,即在slave上重新执行一次事务,从而达到主从事务一致的效果,如下图为两

动态创建MySQL Group Replication的节点(r11笔记第84天)

前几天分享了下搭建MySQL Group Replication的脚本,其实感觉还是不太踏实,虽然我成功搭建了3个节点的环境,但是有不少问题还没有解决,甚至是特意避开了.     1.节点数都是在脚本里固定的,想搭建4个,6个节点的,完全适应不了    2.模板臃肿,每个节点一个参数模板,其实就几个参数不一样    3.单主模式下的节点,其实就一个写节点的配置略有不同,其它节点配置都是一样的,但是脚本里也是写固定了.    4.端口也是写固定了,没法再改了. ....   我能够一口气列出很多很

MySQL Group Replication 学习笔记

作者简介 刘伟  云和开创高级顾问 题记:group replication作为mysql官方,在5.7版本阶段开发的,innodb的分布式数据库架构,从发布开始就有很多关注,下文是我对目前为止的材料以及实验的一些总结. 主要资料来源是官方blog:http://mysqlhighavailability.com/ group replication架构 group replication(后文简称GR)实现的分布式数据库架构,底层的分布式基础是Paxos(出于行文限制,此处不单独交代Paxos

MySQL Group Replication 学习笔记—group replication 小结

group replication 小结 group replication作为mysql官方,在5.7版本阶段开发的,innodb的分布式数据库架构,从发布开始就有很多关注,下文是我对目前为止的材料以及实验的一些总结. 主要资料来源是官方blog:http://mysqlhighavailability.com/ group replication架构 group replication(后文简称GR)实现的分布式数据库架构,底层的分布式基础是Paxos(出于行文限制,此处不单独交代Paxos

分分钟搭建MySQL Group Replication测试环境(r11笔记第83天)

   最近看了下MySQL 5.7中的闪亮特性Group Replication,也花了不少做了些测试,发现有些方面的表现确实不赖.当然要模拟这么一套环境还是需要花不少的功夫的,一般来说都是3个节点的环境,实际中要找这样的环境也不是很容易.我们怎么快速模拟呢.一种方式就是在一台服务器上搭建多实例.    这样一来,服务器的问题就解决了,下面要解决的问题就要艰巨的多了,那就是部署环境.    可以看到各路博客中都有了详细的解释,而官方文档中对于搭建过程也花了不少的额篇幅来解释,每一个步骤,每个操作