美文网首页
MySQL基础理论二~主从相关

MySQL基础理论二~主从相关

作者: 开心的蛋黄派 | 来源:发表于2024-07-17 16:20 被阅读0次

1. 半同步复制

After_commit (MySQL 5.6,有损复制)

  1. 客户端提交事务。
  2. 存储层提交事务。
  3. 推送Binlog到从库,从库接收并写入本地后反馈ACK信息。
  4. 主库收到ACK应答信息后,客户端返回Commit OK。

After_sync (MySQL 5.7,无损复制)

  1. 客户端提交事务。
  2. 推送Binlog到从库,从库接收并写入本地后反馈ACK信息。
  3. 主库通过独立ACK应答线程收到ACK信息。
  4. 存储引擎层提交事务,客户端返回Commit OK。

2. 并行复制演化

  • 普通并行复制

    • 若事务在同一时间戳内提交,且不存在锁冲突,具有相同的last_commited,这些事务可以在从库上并行回放,总结就是主库怎么回放,从库就怎么回放
    • 问题:如果主库的并发度不高,从库不能高效地进行并行回放。
  • 基于writeset的并行复制改进

    1. 不再要求事务必须在同一时间戳内提交。
    2. 并行的粒度被细化到了记录级别。
    3. MySQL计算每个事务中修改的每个行记录的WriteSet值,通过对比当前和历史的writeset值来判断事务之间是否存在冲突。
    4. 如果不存在冲突,事务就可以被标记为与先前的事务具有相同的last_committed值,并进行并行回放。

3. 并行复制参数

  • slave_parallel_type=logical_clock
  • binlog_transaction_dependency_tracking=commit-order|writeset|writeset_session (默认是commit-order)
  • transaction_write_set_extraction=XXhash64 (writeset级别专属)
  • slave_parallel_workers=8 (并行复制worker的线程数量)
  • slave_preserve_commit_order=1 (顺序提交的方式回放)

相关文章

网友评论

      本文标题:MySQL基础理论二~主从相关

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