近期对semisync的一些优化

最近对同机房semisync性能优化告一段落,性能基本能达到预期;目前优化的版本基于MySQL5.6.14,基本优化思路是让备库尽快的发送ACK。主要的优化点简单总结下:

a).备库在接受到需要ack的事件时,先ack,再去写relay log。对于不需要ack的事件只写IO Cache

原始行为为每接受到一个事件就写一次relay log,在同机房场景下,可能存在网络IO已经完成,备库还没写完数据到磁盘

b).备库在需要ack时才去刷master info文件

原始行为是每接受一个事件写一次master_info文件

a)和b)以牺牲备库日志的持久化来提升semisync场景下的主库性能,当备库挂了时,只需要从一个安全的位点重拉binlog即可;

使用sysbench测试的结果:TPS 13000(原生semisync) => 24000 (改进后semisync)

无semisync的TPS约为28000

上述测试同时基于以下的改进

c).主库上在事务commit之前等待备库ack(AFTER_SYNC),在等待期间其他事务无法看到等待线程所做的修改,如果主库挂了,切换到备库后,应用连接只需要检查数据是否更新成功即可 (Port  From  MySQL5.7.2)

原始行为为在事务commit之后(AFTER_COMMIT),每个应用连接等待备库ack,这种情况下在主备切换后,应用连接将无法判断其事务是否成功提交(数据可能被修改多次)

AFTER_SYNC比AFTER_COMMIT更能保证数据的一致性,并且有一定的性能提升,因为在AFTER_SYNC发生在innodb group commit之前,由Leader线程来等待,只需要唤醒leader,而AFTER_COMMIT在大thread running下,可能需要唤醒大量应用连接,开销更大

d).mysql_binlog_send函数不再需要持有Lock_log锁来读取binlog事件,而是维持一个文件末尾的偏移量;(Port From MySQL5.7.2, Facebook mysql5.6有类似实现)

原始行为中,写binlog和读binlog都需要Lock_log这个大锁来保护,这会导致锁竞争,如果有多个备库dump线程,这种竞争会影响到TPS

e).在rotate时,需要生成下一个binlog文件,在设定文件名后缀时,避免扫描整个文件夹,改为维护一个递增数字

其他一些小的修改点不一一列出;

semisync接下来潜在的优化点:

a).大量dump线程对主库性能的影响需要纳入考虑(例如bug#70342)

b).如何保证主备库的强一致;例如,主库宕机,事务已写入本地Binlog,但还没发送到备库;主备切换后,如果应用链接在备库重试事务,则主备一致;如果应用抛弃该事务,或走其他逻辑,那么挂掉重启后的主库可能比备库多执行了事务(利用ADHA回滚机制?)

c).在跨机房场景下,网络称为瓶颈时,如何解决(并发网络IO?)

d).内建semisync,而不是通过plugin的形式,是否可能带来性能提升?

e).主库semisync 的大锁对性能的影响?

时间: 2024-12-05 22:41:10

近期对semisync的一些优化的相关文章

MySQL 5.7增强版Semisync Replication性能优化

  这篇文章主要介绍了MySQL 5.7增强版Semisync Replication性能优化,本文着重讲解支持发送binlog和接受ack的异步化.支持在事务commit前等待ACK两项内容,需要的朋友可以参考下 一 前言 前文 介绍了5.5/5.6 版本的MySQL semi sync 基础原理和配置,随着MySQL 5.7 的发布,新版本的MySQL修复了semi sync 的一些bug 并且增强了功能. 支持发送binlog和接受ack的异步化; 支持在事务commit前等待ACK; 在

谷歌近期三大动作 国内网站优化需找准方向

  大家好,我是木子成舟.对于谷歌来说我们站长如果做百度做的多的话可能就不那么重视了,因为谷歌来的流量相对于百度来说实在是有点少.而根据我的一些经验来看谷歌排名好,流量高的时候百度的排名就是不太好的时候,一旦百度排名上来了,谷歌的流量和排名可能就会下降,可能这只是因为我不太注重对于谷歌的优化造成的吧!但是归根结底,谷歌还是搜索引擎的老大,它的一举一动绝对会对搜索引擎届造成很大的影响,最近谷歌对于算法做了很多的调整,其中最典型的就有下面的三个方面,这些调整都是针对我们网站友情链接等方面做出的一些措

微博信息流优化计划是为自媒体开挂?

中介交易 SEO诊断 淘宝客 云主机 技术大厅 信息流优化起源于社交网站Facebook,Facebook的信息流也叫做News feed,早期是将用户的所有信息都呈现出来.2006年9月,News Feed遭到数千名用户表示反对,原因在于信息量过载,过多的垃圾信息显示在用户主页上,即占用空间又影响用户体验.FB干脆开始对各种用户发布的信息进行分类与整理,然后把广告.推广及诱惑等信息屏蔽掉,然更多的优质信息展现出来,这就是所谓的信息流优化. 这种情况同样也发生在国内的社交网络中,微信等应用的朋友

我们都是搜索引擎下的戏儿

我们都是搜索引擎下的戏儿,最近搜索引擎算法又调整了,让我不得不感叹.我们都被搜索引擎牵着鼻子走,尤其是企业站,面对算法的调整毫无回击之力.为什么会让我有这样的感叹呢?大家都知道做网站排名就没稳定的时候,也许你很尽力的在优化一个网站,但是百度算法一变化,就算你优化的在好,排名也会下降的,这个就是不可控制因素. 本人主要优化的是彩票类网站,营销彩票软件类产品,网站前几个月排名效果不错,近期也在不断加强优化.最近百度算法说变就变,排名一下掉到3页了.我不排除是我在优化手段上有什么问题,但是排名变化不是

关于医疗网站谷歌流量超过百度的原因补充和思考

今天在A5上看到有一篇关于'医疗网站谷歌流量超过百度的原因详析'的文章,确实本人作为一个医疗网站的工作者,也发现近期在一个纯做自然优化的网站中,出现了这个现象,一直想跟大家分享一下,现在虽然有人分享过了,但本人觉得还是有些地方需要补充的. 先看看本人知道的这个医疗站最近4个月天的两张CNZZ统计数据对比的截图(分别是3月底到4月底的对比和5月底到6月底的对比):     从这两个图中不难看出,谷歌搜索流量从不如百度到逐渐追赶.反超.直到现在比百度的3倍还要多,这在4个月之前绝对不是这样的,虽然可

SEO不是“耍流氓” 网络营销需重品牌

  网站SEO优化,已经成了如今企业网络营销的必选之路,而位居高位才有出路,否终注定有付出无回报.搜索引擎首页恒久的仅存在于十指之数,在激烈的行业竞争中,如何博得一席之地呢?网络营销要的前提便是做出精准流量方才有成效.于是黑冒的.白帽的手法层出不穷的运用到搜索引擎优化过程之中.最后运气好些,排名扶摇直上,但若运气一背,岂不是努力付之东流?更重要的一点,采用作弊模式而进行优化的网站,往往其品牌价值也不怎么样.诸如不注质的垃圾链.不为用户体验的伪原创等等,这样的例子比比皆是.试问,当用户访问到网站之

探讨高质量外链的标准

网站搜索引擎优化最常做的事情应该就是网站的外部链接建设了,什么样的外链才是高质量外链呢,我相信大多数的朋友对高质量外链都有自己的认识,但是还有大部分朋友对高质量外链的认识存在一定的认识误区,笔者曾经在站长网发表了2篇文章探讨赶集网链接是否为高质量链接和探讨互动百科链接是否为高质量链接2篇文章,发现还有不少的朋友在对链接还有一些不正确的认识,今天笔者就和大家分享一下,我所认识的高质量链接的定义,   第一.有效链接,这个链接必须是链接,是有效的链接,现在大家都忙于网站的外部链接建设,没有花费时间去

灾备理论:可靠的异地灾备

引言 内存子系统中最重要的优化部分并不涉及到实际的优化工作.在对您的系统进行优化之前,必须弄清楚主机系统的实际运行情况.要做到这一点,AIX? 管理员必须知道应该使用何种工具,以及如何对他或她将要捕获的数据进行分析.再次说明近期发表的一些其他优化文章(请参见 参考资料)中所介绍的内容,您在对系统进行正确地优化之前,必须首先监视主机,无论它是在逻辑分区 (LPAR) 运行还是在自己的物理服务器上运行.您可以使用许多命令来捕获和分析数据,所以您需要了解这些命令,以及其中的哪个命令最适合于将要进行的工

AliSQL开源功能特性

在2017在线技术峰会"阿里开源项目最佳实践"上,阿里云数据库内核专家赵建伟(冷香)为大家带来了"AliSQL开源功能特性"的演讲.本文先简要介绍了AliSQL以及其开源背景,重点说明了AliSQL已开源的功能,包括Sequence Engine.TokuDB引擎支持和秒杀优化等,最后对AliSQL用户ISSUE和典型问题作了解答.   以下是精彩内容整理: AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里