在 V4.x 版本中,OceanBase 数据库的副本类型有全能型副本(FULL)、只读型副本 (ReadOnly)、列存副本(COLUMNSTORE)。
只有全能型副本可以作为选举中 Leader 的候选者(Candidate),变为主提供数据库服务。
2 个赞
学习了
全功能副本参与paxos同步和leader选举
从副本不参与paxos同步以及leader选举
1 个赞
- 副本类型概述
- 在 OceanBase 中,副本分为多种类型,主要包括主副本(Leader)和从副本(Follower)。主副本负责处理读写事务,从副本主要用于数据备份和提供只读服务。并不是所有副本都可以参与选举。
- 可参与选举的副本条件
- 完整副本:只有包含完整数据的副本才有资格参与选举。这意味着副本的数据必须是最新的或者与主副本的数据差异在可接受的范围内。例如,在正常的事务处理过程中,从副本通过回放主副本产生的日志来保持数据更新,如果一个从副本由于网络问题或者其他故障,没有及时回放日志,导致数据不完整,那么这个副本在未完成数据补齐之前是不能参与选举的。
- 存活副本:副本必须处于存活状态,即它所在的服务器或存储节点在运行,并且能够与集群中的其他节点进行通信。如果一个副本所在的节点出现硬件故障(如磁盘损坏、服务器宕机等)或者网络连接中断,这个副本暂时就不能参与选举。不过,当故障恢复后,在满足其他条件的情况下,该副本可以重新参与选举。
- 具有合适的角色和配置:通常情况下,只有被配置为可以承担主副本角色的副本才能参与选举。在 OceanBase 的集群配置中,有一些副本可能被专门设置为只读副本,这些副本即使数据完整且存活,也不会参与主副本的选举。例如,在一个多租户的 OceanBase 集群中,某些租户可能会指定特定的副本用于只读操作,以减轻主副本的负载,这些只读副本不会参与选举来成为主副本。
- 选举过程中的副本行为
- 在选举过程中,符合条件的副本会根据集群的选举协议进行竞争。这些协议通常会考虑副本的优先级、数据完整性、节点资源等因素。例如,一个具有更高优先级(可能基于节点性能、数据新鲜度等因素确定优先级)的副本在选举中有更大的机会成为新的主副本。同时,参与选举的副本会向其他副本发送自己的状态信息和竞选信息,以便其他副本能够评估其是否适合担任主副本。当一个副本被选举为新的主副本后,它会承担起处理读写事务的职责,并且会通知其他副本更新其角色和状态。
2 个赞
学习了