OB集群副本强同步的原理是什么?
OceanBase 集群副本强同步的原理基于 Multi-Paxos 分布式一致性协议。这种协议确保数据在主副本故障时能够无损恢复,即在数据更新时,不仅会在主副本上写入数据,还会同步到多个从副本。一旦主副本发生故障,可以从副本中选举新的主副本继续提供服务,而不会丢失任何数据。事务日志会被持久化并同步到多数派副本,基于 Paxos 协议确保日志数据在多数派副本中持久化成功。
检索到的文档如下:
-
副本架构与Paxos协议
OceanBase采用Multi-Paxos分布式一致性协议来保证副本间的强一致性:
日志流副本:同一日志流的数据会被拷贝到多个机器上,这些拷贝称为副本(Replica)
Paxos组:每个日志流及其副本构成一个独立的Paxos组
角色分配:每个Paxos组中有一个主副本(Leader)和多个从副本(Follower) -
强同步机制
日志同步流程
REDO日志复制:通过复制事务REDO日志的方式实现数据同步
多数派确认:必须保证多数派副本同步成功才能提交事务
实时同步:不会出现类似MySQL主从复制中的异步延时问题 -
读写一致性保证
主副本(Leader)
具备强一致性读和写能力
所有写操作必须通过主副本来执行
默认情况下读写操作都在主副本上保证强一致
从副本(Follower)
具备弱一致性读能力
允许读取稍旧版本的数据
不参与强一致性写操作 -
高可用保障
故障恢复:主副本故障时,能保证从副本的数据无损恢复
容错能力:在少数派副本故障的情况下依然能够提供无损的数据库服务
数据安全:通过分区复制、日志同步等方式防止数据丢失 -
副本类型
OceanBase支持多种副本类型:
全功能型副本:参与Paxos组,具备完整功能
日志型副本:主要用于日志同步
只读型副本:非Paxos副本,不参与选举投票
日志流吧
AI真是强大