在高可用方案中,一个经典的脑裂(Split Brain) 问题: 如果两个数据副本因为网络问题互相不知晓对方的状态,并且分别认为各自应当作为主副本提供数据服务,那么这时候就会出现典型的脑裂现象,最后会导致系统混乱,数据损坏。 OceanBase 数据库利用了 Paxos 协议中的多数派共识机制来保证数据的可靠性以及主副本的唯一性:在任一时刻只有多数派副本达成一致时,才能推选一个 Leader。如果正在提供服务的 Leader 副本遇到故障而无法继续提供服务,只要其余的 Follower 副本满足多数派并且达成一致,他们就可以推选一个新的 Leader 来接管服务,而正在提供服务的 Leader 自己无法满足多数派条件,将自动失去 Leader 的资格。 因此,我们可以看到 OceanBase 数据库的分布式选举在高可用方面有明显的优势:从理论基础上就保证了任一时刻至多有一个 Leader,彻底杜绝了脑裂的情况。由于不再担心脑裂,当 Leader 故障而无法提供服务时,Follower 可以自动触发选举来产生新的 Leader 并接管服务,全程无须人工介入。这样一来,不但从根本上解决了脑裂的问题,还可以利用自动重新选举大大缩短 RTO。当然,这里面还有一个很重要的因素,那就是 Leader 出现故障时,Follower 能在多长时间内感知到 Leader 的故障并推选出新的 Leader,这个时间直接决定了 RTO 的大小。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




