美文网首页
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