签到成功

知道了

CNDBA社区CNDBA社区

MySQL 5.7 并行复制 说明

2024-04-25 10:55 853 0 转载 MySQL
作者: dave

注:本文由大模型生成http://www.cndba.cn/cndba/dave/article/131538http://www.cndba.cn/cndba/dave/article/131538

http://www.cndba.cn/cndba/dave/article/131538

1. 并行复制机制

MySQL 5.7 引入了基于组的并行复制(Group Replication-Based Parallelism),它允许从库上的多个工作线程并行应用中继日志中的事件,从而提高了复制的性能。这与早期版本的基于语句或基于行的并行复制不同,后者通常受限于单个事务的串行执行。

http://www.cndba.cn/cndba/dave/article/131538
http://www.cndba.cn/cndba/dave/article/131538
http://www.cndba.cn/cndba/dave/article/131538
http://www.cndba.cn/cndba/dave/article/131538

MySQL 5.7 的并行复制主要基于组提交(Group Commit)的概念。在主服务器上,多个事务可以并行执行,并通过组提交的方式一起写入二进制日志(binlog)。这样,从服务器在读取这些事务时,可以识别出哪些事务属于同一组,从而进行并行复制。

http://www.cndba.cn/cndba/dave/article/131538
http://www.cndba.cn/cndba/dave/article/131538

此外,MySQL 5.7 还引入了一种依赖检测机制,用于更精确地确定事务之间的依赖关系。这种机制通过分析事务修改的行集合(写集)来判断它们之间的依赖关系,从而避免数据不一致。

http://www.cndba.cn/cndba/dave/article/131538

  • 基于组的并行复制:MySQL 5.7 引入了逻辑时钟(logical clock)的概念,允许将不同的事务分配到不同的工作线程上并行执行。这通过检测事务之间的依赖关系来实现,确保没有数据冲突。这个逻辑时钟值基于事务在主服务器上的提交顺序。从服务器在读取二进制日志时,会根据这些逻辑时钟值来判断哪些事务可以并行应用。
  • 工作线程:从库上的多个 SQL 线程(也称为复制工作线程或应用线程)可以并行工作,应用中继日志中的事件。

2. 相关控制参数和参数的详细解释

  1. slave_parallel_workers
  • 解释:这个参数指定了从服务器上用于并行复制的worker线程数。当设置为大于1的值时,从服务器将启用并行复制,多个worker线程将同时处理主服务器上的事务。
  • 建议:根据从服务器的硬件资源(如CPU核心数)和复制负载来设置合适的值。过高的值可能导致资源竞争和性能下降。
  1. slave_parallel_type
  • 解释:这个参数用于控制并行复制的类型。它决定了worker线程如何确定哪些事务可以并行处理。可能的值包括DATABASELOGICAL_CLOCKRELAY_LOG_NAMETRANSACTION
  • 建议:根据工作负载和性能需求选择合适的值。例如,如果主服务器上的多个数据库经常同时更新,DATABASE模式可能是一个好选择;而对于高并发写入的工作负载,LOGICAL_CLOCKTRANSACTION模式可能更合适。
  1. binlog_transaction_dependency_tracking
  • 解释:这个参数用于控制二进制日志中事务依赖性的跟踪方式。它影响了并行复制时如何判断哪些事务可以安全地并行处理。可能的值包括COMMIT_ORDERWRITESETHASH
  • 建议:根据工作负载和数据一致性要求选择合适的值。COMMIT_ORDER模式开销较小但可能无法充分利用并行复制的性能;WRITESET模式可以提供更精确的依赖检测但开销较大;HASH模式则提供了一种折衷方案。
  1. binlog_group_commit_sync_delaybinlog_group_commit_sync_no_delay_count
  • 解释:这两个参数用于优化主服务器上的组提交性能。它们通过调整二进制日志从写入到同步到磁盘的延迟时间,来减少写盘次数,从而增加从服务器的并行复制度。
  • 建议:在调整这两个参数时,需要权衡数据持久性和性能之间的关系。过长的延迟可能导致数据丢失的风险增加;而过短的延迟则可能无法充分利用并行复制的性能优势。
用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:8016863次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ