MySQL并发复制系列一:binlog组提交

本文介绍了MySQL的并发复制,特别是Binlog Group Commit的机制,旨在保证主备库数据一致性。在开启Binary Log时,二阶段提交用于同步存储引擎和日志。早期通过prepare_commit_mutex保证顺序,但影响性能。MySQL 5.6引入BLGC,分为Flush、Sync、Commit三个阶段,允许多个事务组提交,提升并发性能。5.7版进一步优化,实现多线程复制,通过binlog_group_commit_sync_delay等参数控制组提交的事务数量和延迟。
摘要由CSDN通过智能技术生成

并发复制(Parallel Replication) 系列 一 : Binary Log Group Commit

作者:沃趣科技MySQL数据库工程师  麻鹏飞


MySQL  Binary log在MySQL 5.1版本后推出主要用于主备复制的搭建,我们回顾下MySQL 在开启/关闭 Binary Log功能时是如何工作的 。

MySQL没有开启Binary log的情况下: 

  •  InnoDB存储引擎通过redo和undo日志可以safe crash recovery数据库,当数据crash recovery时,通过redo日志将所有已经在存储引擎内部提交的事务应用redo log恢复,所有已经prepared但是没有committransactions将会应用undo logroll back。然后客户端连接时就能看到已经提交的数据存在数据库内,未提交被回滚地数据需要重新执行。

MySQL开启Binary log 的情况下:

  • 为了保证存储引擎和MySQL数据库上层的二进制日志保持一致(因为备库通过二进制日志重放主库提交的事务,假设主库存储引擎已经提交而二进制日志没有保持一致,则会使备库数据丢失造成主备数据不一致),引入二阶段提交(two phase commit or 2pc) 
图1 二阶段提交</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值