文档章节

二进制日志组提交(Binary Log Group Commit)

AnthonyYau
 AnthonyYau
发布于 2016/04/20 11:32
字数 249
阅读 113
收藏 0

mysql 5.5 group commit的bug,开启binary log不能使用组提交,性能差800%,mariadb 5.3实现binary log group commit

  • BLGC特性(mariadb 5.3、mysql 5.6)

    • 设置innodb_flush_log_at_trx_commit=1sync_binlog=1,确保数据持久性,crash后恢复到一致性状态
    • 一次fsync刷新多个并发事务的二进制日志到磁盘
    • 在commit提交事务时,只需要做两次fsync操作(之前为3次,commit阶段不需要做fsync),不丢失提交持久性(如果在commit之前发生crash,下次服务重启时从binlog进行恢复,对比xid信息)
      • mariadb的innodb_flush_log_at_trx_commit=3 会做3次fsync操作,能保证提交事务持久性,但是会造成binlog和innodb的一致性问题
      • innodb_flush_log_at_trx_commit=1 但是sync_binlog=0,不能担保持久性的,因crash时binlog的事件将丢失
  • 性能压测对比

输入图片说明

© 著作权归作者所有

AnthonyYau
粉丝 29
博文 85
码字总数 93611
作品 0
广州
数据库管理员
私信 提问
binlog实现并发复制过程slave线程数

首先梳理下传统MySQL/MariaDB主备复制基本原理: 主从复制通过三个线程来完成,在master节点运行的binlog dump的线程,I/O线程和SQL线程运行在slave 节点 master节点的Binlog dump线程,当s...

xiaocao13140
2018/06/08
0
0
mysql 5.7基于组提交,group commit

MySQL 组提交 preparecommitmutex锁 MySQL5.6以前,为了保证数据库上层二进制日志的写入顺序和InnoDB层的事务提交顺序一致,MySQL数据库内部使用了preparecommitmutex锁。但是持有这把锁之后...

Love轩轩
2017/10/16
0
0
关于 Percona Server 的什么是 Group Commit ?

Percona Server 刚刚发布的 5.5.18 支持 Binary Group Commit ,那么什么是 Group Commit 呢? 下面是我找到的一篇关于 Group Commit 的介绍: 原文:http://www.orczhou.com/index.php/2010...

红薯
2011/12/20
527
0
MySQL binlog 组提交与 XA(两阶段提交)

1. XA-2PC (two phase commit, 两阶段提交 ) XA是由X/Open组织提出的分布式事务的规范(X代表transaction; A代表accordant?)。XA规范主要定义了(全局)事务管理器(TM: Transaction Manager)和...

Jenkin_lin
2017/03/23
0
0
从源码探究MySQL5.7高吞吐事务量的背后操手

大家都知道在MySQL中,在事务真正COMMIT之前,会将事务的binlog日志写入到binlog文件中。在MySQL的5.7版本中,提供了所谓的无损复制功能,该功能的作用就是在主库的事务对其他的会话线程可见...

徐春阳
2017/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

首次揭秘:阿里巴巴中间件在 Serverless 技术领域的探索

Serverless 话题涉及范围极广,几乎包含了代码管理、测试、发布、运维和扩容等与应用生命周期关联的所有环节。AWS Lambda 是 Serverless 领域的标志性产品,但如果将其应用于核心业务,可能会...

阿里云官方博客
17分钟前
0
0
Python免踩坑指南

最近我发现GitHub上中文项目越来越多,真实令人欣喜的事情啊。不知道小伙伴们有没有发布自己的GitHub精品项目,觉得自信的可以拿出来,推荐给其他小伙伴哦。 好了,话不多说今天的GitHub精推...

编程资源库
29分钟前
0
0
微信授权域名

https://www.jianshu.com/p/9ce837f20740

Js_Mei
30分钟前
0
0
115.两种格式磁盘扩容、调整内存和cpu、迁移虚拟机

28.12 磁盘扩容(raw) 28.13 磁盘扩容(qcow2) 28.14 调整cpu内存和网卡 28.15 迁移虚拟机 28.12 磁盘扩容(raw) 针对一块已经存在的盘进行增加容量 1.qemu-img resize /kvm_data/aminglinux02...

Axin-linux
31分钟前
0
0
好程序员java分享spring框架精讲

1、什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员...

好程序员IT
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部