MST

星途 面试题库

面试题:MariaDB半同步复制中从库确认机制的关键流程是什么

请阐述在MariaDB半同步复制环境下,从库是如何确认接收到主库发送的二进制日志事件,以及这个确认流程的主要步骤和涉及到的关键参数。
13.8万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

从库确认接收到主库二进制日志事件的过程

  1. 接收日志事件:主库在执行事务并将其写入二进制日志后,会将二进制日志事件发送给从库。从库的I/O线程负责接收这些事件,并将其写入到中继日志(Relay Log)中。
  2. 确认机制:从库在成功将接收到的二进制日志事件写入中继日志后,会向主库发送一个ACK(确认)消息,告知主库已成功接收。

确认流程的主要步骤

  1. 主库操作
    • 主库执行事务并记录到二进制日志。
    • 主库将二进制日志事件发送给从库的I/O线程。
  2. 从库I/O线程操作
    • 从库I/O线程接收主库发送的二进制日志事件。
    • 将接收到的事件写入中继日志。
    • 向主库发送ACK消息确认接收。
  3. 主库等待确认:主库在发送二进制日志事件后,会等待至少一个从库发送ACK确认。只有在接收到确认后,主库才会将该事务标记为已提交。

涉及到的关键参数

  1. rpl_semi_sync_master_wait_for_slave_count:主库等待多少个从库的确认,默认为1。
  2. rpl_semi_sync_master_timeout:主库等待从库确认的超时时间,单位为毫秒,默认值是10000(10秒)。
  3. rpl_semi_sync_slave_enabled:从库是否启用半同步复制功能,ON表示启用,OFF表示禁用。