文档章节

并行复制(MTS:enhanced Multi-threaded slave)

AnthonyYau
 AnthonyYau
发布于 2016/04/20 16:59
字数 466
阅读 444
收藏 1

5.7.2 支持单库增强型多线程slave(多个sql work线程),mariadb 10.0.5支持

  • 原理

    • slave利用事务组提交的特性(To provide parallel execution of transactions in the same schema, MariaDB 10.0 and MySQL 5.7 take advantage of the binary log group commit optimization),在slave 多个sql worker线程进行并行回放
    • master依据group commit的并行性,在binary log进行标记,slave使用master提供的信息并行执行事务
  • 注意事项

    • 级联复制场景,其他slave将会出现并行性更小(并行度不一样),使用binlog server做替代方案
  • 配置

    • mysql 5.7
      • slave_parallel_type=logical_clock 默认为database,使用db并行方式,logical_clock使用逻辑时钟的并行模式
      • slave_parallel_workers=16 设置worker线程数
      • binlog_group_commit_sync_delaybinlog_group_commit_sync_no_delay_count 在master延时事务提交,增加group commit事务数
    • mariadb参数
      • slave_parallel_threads=16 也支持多源复制
      • slave_parallel_mode=conservative 10.1.3开始支持optimistic模式,通过启发性方式减少冲突,如果发生冲突,将事务进行回滚 ;Conservative默认值,使用group commit发现潜在的并行事件,在一个group commit中的事务写到binlog时拥有相同的commit id(cid);minimal仅仅commit阶段是并行,其他事务应用发生是串行的,同时也关闭out-of-order(使用不同domain id)并行复制
      • binlog_commit_wait_countbinlog_commit_wait_usec 调整master进行group commit的事务数
      • slave_parallel_max_queued 限制每个线程的队列事件数,提高worker线程处理能力
      • slave_domain_parallel_threads worker线程由所有多源master连接共享,建议大于slave_parallel_threads
  • 查看状态

    • show processlist 检查worker线程的状态
    • mariadb的状态变量BINLOG_COMMITSBINLOG_GROUP_COMMITS
  • 性能测试

输入图片说明

© 著作权归作者所有

AnthonyYau
粉丝 29
博文 85
码字总数 93611
作品 0
广州
数据库管理员
私信 提问
MySQL 5.7并行复制实现原理与调优

文章转自: http://mp.weixin.qq.com/s?_biz=MjM5MjIxNDA4NA==&mid=205236417&idx=1&sn=15281c834348911cea106478aa819175#rd 2015-05-26 姜承尧 InsideMySQL 前言 这篇文章花了Inside君整整......

浮生凤年
2018/06/26
0
0
技术分享 | MTS并行增量应用

原创作者: 爱可生开源社区 MySQL 的复制延迟在早期版本一直存在,MySQL 5.6.3 版本后开始支持并行复制,并在 5.7进一步完善可用并行复制功能,官方将该功能称为 enhanced multi-threaded sl...

爱可生
07/15
23
0
MySQL复制延迟优化的方法论

一、MySQL为什么会延迟 数据延迟: 是指master执行了N个事务,slave却只执行了N-M个事务,说明master和slave之间产生了延迟 延迟原因:延迟的原因很多种,大部分情况下是 slave的处理能力跟不...

兰春
2018/08/01
0
0
MySQL · 特性分析 ·MySQL 5.7新特性系列四

继上三期月报: MySQL 5.7新特性之一介绍了一些新特性及兼容性问题 MySQL 5.7新特性之二介绍了临时表的优化和实现 MySQL 5.7新特性之三介绍了undo表空间的truncate功能 这期我们一起来学习下...

阿里云RDS-数据库内核组
2016/08/02
0
0
MySQL Replication 梳理详解

MySQL Replication 1 MySQL5.5以前的复制 异步、SQL线程串行化回放 MySQL内建的复制功能是构建大型,高性能应用程序的基础。主服务器将更新写入二进制日志文件,从服务器重新执行一遍来实现的...

PeakFang-BOK
2018/11/15
94
0

没有更多内容

加载失败,请刷新页面

加载更多

【Go专家编程】defer这里有个坑

前言 项目中,有时为了让程序更健壮,也即不panic,我们或许会使用recover()来接收异常并处理。 比如以下代码: func NoPanic() {if err := recover(); err != nil {fmt.Println("Recov...

恋恋美食
20分钟前
2
0
20190920笔记

扩展: bashrc和bash_profile http://ask.apelearn.com/question/7719 http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html echo 颜色 http://www.cnblogs.com/lr-ting/archi......

徐-锐
35分钟前
1
0
Shiro整合Redis代码解读

1. shiro默认使用的MemoryConstrainedCacheManager创建MapCache来保存缓存数据。manager和cache对象之间的关系可以参考笔者的另一篇文章,Springboot Redis详解。 2. shiro整合Redis的关键就...

sunranhou
58分钟前
4
0
关闭服务

题目要求 在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。 写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的...

wzb88
今天
6
0
面试官:兄弟,说说 Spring Cloud 的核心架构原理吧

最近在补一些分布式系列的面试内容,提前几个月做做准备吧,你们懂的,也跟大家分享分享。现在分布式系统基本上都是标配了,如果你现在还在玩儿单机,没有接触过这些东西的话,权当是为你打开...

咪咪家的汪汪
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部