美文网首页
MySQL并行复制

MySQL并行复制

作者: 爱钓鱼的码农 | 来源:发表于2020-08-24 15:28 被阅读0次

传统复制:

image.png

多线程模型:

image.png

分发事务疑问

1、事务能不能按照轮询的方式分发给各个 worker,也就是第一个事务分给 worker_1,第二个事务发给 worker_2 ?
      事务被分发给 worker 以后,不同的 worker 就独立执行了。但是,由于 CPU 的调度策略,很可能第二个事务最终比第一个事务先执行。而如果这时候刚好这两个事务更新的是同一行,也就意味着同一行上的两个事务,在主库和备库上的执行顺序相反,会导致主备不一致的问题。
2、同一个事务的多个更新语句,能不能分给不同的 worker 来执行呢?
      一个事务更新了表 t1 和表 t2 中的各一行,如果这两条更新语句被分到不同 worker 的话,虽然最终的结果是主备一致的,但如果表 t1 执行完成的瞬间,备库上有一个查询,就会看到这个事务“更新了一半的结果”,破坏了事务逻辑的隔离性。

事务分发基本要求

1、不能造成更新覆盖,这就要求更新同一行的两个事务,必须被分发到同一个 worker 中。          
2、同一个事务不能被拆开,必须放到同一个 worker 中。

MySQL 各版本并行复制策略

5.6
官方 MySQL5.6 版本,支持了并行复制,只是支持的粒度是按库并行。这个策略的并行效果,取决于压力模型。如果在主库上有多个 DB,并且各个 DB 的压力均衡,使用这个策略的效果会很好。

5.7

相关文章

  • 2.安装部署

    源码编译 MySQL编译依赖 必备的包和工具 功能需要的包 功能定制 MySQL限流SQL限流并行复制Thread...

  • MySQL并行复制

    传统复制: 多线程模型: 分发事务疑问 事务分发基本要求 MySQL 各版本并行复制策略

  • WriteSet并行复制

    author:sufei 源码版本:5.7.26 一、MySQL并行复制过程的发展 库间并发 理论依据: 一个数据...

  • Mysql 的并行复制

    1.依据binlog和pos节点主从复制 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) ...

  • MySQL的并行复制

    MySQL的主从复制延迟一直是受开发者最为关注的问题之一,MySQL从5.6版本开始追加了并行复制功能,目的就是为...

  • MySQL的并行复制策略

    前面介绍的MySQL 的主从复制流程如下所示: 主备延迟的主要原因在于,master A 上产生 binlog 的...

  • MySQL开启 WriteSet并行复制

    # 从库需要执行stop slave;set global binlog_transaction_dependen...

  • 基于GTID的主从实践系列之④并行复制搭建及测试

    并行复制最早在5.6就搞出来了,是一个库级别的并行复制(slave_parallel_type可以有两个值:DAT...

  • mysql5.7.17并行复制bug复现

    背景 疑问 课前知识(并行复制-COMMIT_ORDER) 疑问1分析(这个bug一定会导致数据不一致吗) 疑问2...

  • MySQL 5.7 并行复制解决复制延迟问题

    一、缘由: 某天看到主从复制延时的告警有点频繁,就想着是不是彻底可以解决一下。 一般主从复制,有三个线程参与,都是...

网友评论

      本文标题:MySQL并行复制

      本文链接:https://www.haomeiwen.com/subject/bqynjktx.html