MST

星途 面试题库

面试题:MariaDB半同步复制的工作原理简述

请简要描述MariaDB半同步复制的工作原理,包括涉及的主要组件和消息交互过程。
36.5万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

主要组件

  1. 主库(Master):负责处理客户端的写操作,将写操作记录到二进制日志(Binary Log)中,并向从库(Slave)发送日志事件。
  2. 从库(Slave):接收主库发送的日志事件,将其应用到自己的数据副本上,保持与主库的数据同步。
  3. 半同步复制插件:在主库和从库上都需要安装半同步复制插件,负责处理半同步复制相关的消息交互和状态管理。

消息交互过程

  1. 主库写操作
    • 客户端向主库发起写操作,主库将写操作记录到二进制日志中。
    • 主库通过半同步复制插件,将日志事件发送给从库,并等待从库的确认。
  2. 从库接收与确认
    • 从库的半同步复制插件接收到主库发送的日志事件。
    • 从库将接收到的日志事件写入到中继日志(Relay Log)中,并通过半同步复制插件向主库发送确认消息,表示已成功接收日志事件。
  3. 主库响应
    • 主库在收到至少一个从库的确认消息后,才会向客户端返回写操作成功的响应。如果在一定时间内没有收到从库的确认消息,主库会切换回异步复制模式,以避免写操作长时间阻塞。
  4. 从库应用日志
    • 从库在向主库发送确认消息后,会按照中继日志中的记录,将日志事件应用到自己的数据副本上,完成数据同步。