栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

raft学习(12)

raft学习(12)

5.4.1 election的限制

在任何的基于leader的共识算法中,leader必须最终存储所有log entries的committed log。在某些共识算法中,例如viewstamped replication中,leader可以被选举即使它最初并没有包含所有的committed entries。这些算法包含额外的机制来认清missing entries然后将他传输给新的leader(在选举过程中或短暂的之后)。不幸的是,这导致了非常大的额外机制和复杂性开销。raft使用一个较为简单的方法来保证所有的以前的terms的commmited entries出现在新的leader选举完的moment上,并不需要传输这些entreis给leader。这意味着log entries只会单向流动,从leader到follower,并且leader并不会重写他们logs中的已有的entries

raft使用voting过程来防止candidate来获取election的胜利,除非它的log包含所有的committed entries。candidate必须联系cluster的大多数节点从而被选举,这意味着每个committed entry必须出现在至少这些servers中的一个。如果candidate的log是至少和其他任意大多数节点的log一样up-to-date的(up-to-date在下面更精确地定义),那么他就会拥有所有committed entries。requestVote rpc实现了这种限制:rpc包含了candidate log的信息,voter如果发现他们自己的log比candidate的log更up-to-date那么他们就拒绝该rpc

raft通过比较logs中的最后entries的index和term来决定两个logs谁是更加up-to-date的
如果logs有不同terms的last entries,那么有更later的term的就是更up-to-date的。如果logs以相同的term结束,那么哪个log更长就是更up-to-date的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号