应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

分布式一致性Raft算法日志复制

  第2部分日志复制介绍
  Raft是一种共识算法,旨在以分布式方式编排副本。Raft在设计时考虑了可理解性,只有几个活动部件并且易于实施。在上一篇文章中,我讲了Raft的基础知识,并解释了领导者选举机制。在这篇文章中,我们将关注另一个重要问题日志复制。基础知识
  Raft本质上是一堆复制的状态机。每当领导节点收到请求时,都会将其附加到日志中以确保持久性。相同的日志被复制到多台机器上以实现冗余。
  图0。Raft日志,作者图
  例如,在图1中,当前领导者的日志中有四个条目。关注者1完全同步,但关注者2缺少最新条目。如果你不明白图0中的Term是什么,可以看看我之前的文章。
  用于日志复制的RPC
  为便于理解而设计,Raft仅使用两个RPC调用进行所有通信:
  AppendEntry:这个RPC由leader发起,携带最新收到的命令。它还用作心跳消息。当追随者收到此消息时,选举计时器将重置。AppendEntry消息是这样的结构(我在这里使用Golang)typeAppendEntryArgsstruct{Termintcurrenttermoftheleader,veryIMPORTANTLeaderIdintidoftheleader,0toN1whereNtotalserversEntries〔〕EntrynewdatatosyncPrevLogIndexintimportantmetadataforlogcorrectnessPrevLogTermintimportantmetadataforlogcorrectnessLeaderCommitintwhatindexhavebeenreceivedbythemajority}typeAppendEntryReplystruct{TermintcurrenttermofthereceivingnodeSuccessboolAppendEntrydeclinedoracceptedConflictIndexintifdeclined,specifyingtheconflictingindexConflictTermintifdeclined,specifyingtheconflictingterm}
  如果您不了解每个字段的含义也没关系。我们将一一检查。
  RequestVote:这个RPC用于leader选举,在上一篇文章中有介绍。我将跳过它,因为我们只关心日志复制。日志复制详细信息
  让我们从普通日志复制算法开始。每当领导者收到请求时,它会将日志条目转发给所有追随者并等待大多数人确认。
  问题1:日志排序
  香草算法会在追随者到达后立即向他们发送消息。为此,它只需要消息中的两个字段leaderID和Entry。一个主要问题是由于潜在的消息延迟而无法保留日志顺序。考虑图1中的场景。
  图1。日志排序问题,作者图
  Raft使用两个额外的字段来确保日志的完整性PrevLogIndex和PrevLogTerm。当一个新条目发出时,leader也会发出之前条目的索引和任期号。接收方在将新请求附加到其本地日志之前确保其最新条目具有相同的索引和任期。
  图2。附加记账的AppendEntry,作者图
  有了这两个额外的参数,我们可以实现一些很棒的东西:给定日志索引,如果来自两个日志(在两台不同机器上)的条目共享相同的术语,则它们是相同的如果不同日志中的两个条目具有相同的索引和任期,则所有前面的条目都是相同的
  第一个性质很容易证明。假设索赔是错误的。如果存在两个具有相同任期的不同条目,则其中一个必须比另一个更晚被领导者接收。由于日志是仅附加的,因此其中一个条目将具有更大的PrevLogIndex。但是,如果它们出现在两个不同日志的相同索引中,则它们必须具有相同的PrevLogIndex。(否则接收方拒绝)矛盾!!
  第二个主张可以通过归纳证明:
  图3。声明2的归纳证明,作者图
  这两个保证共同构成了Raft的日志匹配特性。
  问题2:具有冲突条目的关注者
  如果leader日志是集群中唯一的权限,它将覆盖follower的任何冲突。是否有可能丢失一些日志条目?考虑以下情况:
  图4。日志冲突,作者图
  在深入探讨这个问题之前,我想说服您上述情况确实会发生。日志在索引2之前同步。从那里开始,创建这些日志可能会发生以下情况:1)节点2成为领导者(从自己投票,1和0)任期22)节点2收到来自客户端的请求,但未能与其他节点同步3)节点0成为领导者(来自1和它自己的投票),任期为34)节点0收到来自客户端的请求。但未能同步
  现在,如果节点0重新与节点2联系,它将尝试复制其日志,如图5所示
  图5。覆盖冲突,作者图
  如您所见,绿色条目确实被丢弃了。按照目前的设计,这个问题是不可避免的。然而,这里的一个关键观察是绿色条目没有在大多数(至少两个节点)上复制。如果是,它将永远不会被丢弃,原因如下:如果一个条目在大多数情况下被复制,则至少有N21个节点拥有它对于没有进入选举的节点,它需要其他节点的N2票(候选人总是为自己投票)由于候选人没有条目,因此具有条目的N21个节点不会投票给它(选举限制在第1部分中解释)Itwontgetenoughvotestowintheelection
  这就是Raft的第二个关键特性日志完整性属性。如果一个条目在majority上被复制,它将始终出现在未来的领导者日志中,无论它可能是哪个节点。如果没有在大多数人身上复制,则如果领导层发生变化,条目可能会被删除。
  对于日志完整性属性,重要的是不要在大多数人收到之前确认客户端请求。
  问题3:何时提交?
  最后,我们到了最后一个问题什么时候提交条目?首先什么是commit,为什么要commit?Raft是一种低级共识算法,供上层应用程序使用,如键值存储(例如ZooKeeper)。当一个条目被Raft安全地复制时,我们要确保客户端可以通过应用程序看到它。因此,Raft需要决定何时告诉上层应用程序一个条目已准备好使用(一个部分复制的条目,因为领导者日志中的最后一个条目不应该是可见的!)。
  图6。提交,作者图
  到目前为止,我们的香草算法没有携带任何关于提交索引的信息。因为数据流是单向的,从领导者流向追随者,所以节点不知道一个条目是否在大多数节点上被复制。
  为了解决这个问题,我们可以在AppendEntry消息中添加另一个字段,称为LeaderCommit。如果大多数接收到一个条目,领导者会增加提交索引。下面是跟踪领导节点使用的提交索引的实际代码。forn:rf。getLastIndex();nrf。commitIndex;n{startfromthelatestentrycount:1ifrf。log〔n〕。Termrf。currentTerm{leaderonlycaresaboutentriesofitstermentrieswithsmallertermsarecommitedautomaticallywhenhighertermsarecommittedfori:0;ilen(rf。peers);i{ifrf。peer〔i〕。hasEntry(n){count}}}ifcountlen(rf。peers)2{rf。commitIndexnnoneedtogofurtherback,forreasonsstatedinline7and8break}}
  领导者如何跟踪提交索引概括
  在这篇文章中,我们从普通的日志复制算法(广播条目,没有任何额外的簿记)开始,并通过考虑各种极端情况将其发展为成熟的版本。日志复制中最重要的RPC是AppendEntryRPC,它使用具有四个字段的结构:Term:对于日志复制和领导者选举非常重要LeaderId:显示候选人的身份。条目:领导者希望复制的条目列表。PrevLogIndex:在Entries〔0〕之前的日志条目的索引。用于确保日志完整性和日志匹配属性PrevLogTerm:在Entries〔0〕之前的日志条目的任期。用于确保日志完整性和日志匹配属性LeaderCommit:对上层应用很重要。只有已提交的条目才能应用于应用程序并且对客户端可见。

读书有感在书店无意翻看到吴中朝的《特效穴位祛病全书》,为了多学点健康生活的小技巧,于是就买回家阅读。在没有看到这书之前,我一直以为人体穴位是极其复杂的,但是等我开始阅读起来,就深深喜欢……新疆广汇因注册严重违规遭中国篮协处罚,周琦恢复自由身新华社中国篮球协会纪律与道德委员会17日发出处罚决定通知,对在注册等多个方面严重违规的新疆广汇篮球俱乐部有限公司(以下简称新疆广汇)作出处罚,这意味着与该俱乐部存在合同争……中国游客在韩国日本遭侮辱,被当犯人看押,花高价做核酸检测疫情封控3年来,几乎所有人的出行计划都受到了影响。如今封控措施终于取消,很多人早就坐不住了,迫不及待要出国旅游。谁知道,现实给了他们一个响亮的巴掌。他们不仅没……大衣围巾2023最洋气穿搭,保暖时髦两不误,谁穿谁美!在冬天怎么搭配才能够保证温度和风度呢?这时候姐妹们当然要把各种保暖的配饰利用起来啦!而在今年冬天有一种穿法特别火,那就是大衣配围巾,大衣和围巾相辅相成,能够让温暖知性的气质油然……潜行者2切尔诺贝利之心UltimateEdition售价提高IT之家2月16日消息,游戏开发商GSCGameWorld今天宣布将《潜行者2:切尔诺贝利之心》UltimateEdition的售价提高40美元(当前约274元人民币),以便于……Java内存模型(JMM)在高并发的情况下,java的内存模型到底是怎么提供支持的,要说清楚这个问题我们首先要先知道一些硬件层面的的知识,因为java的内存模型都是架构在这些硬件层面上的。计算机的存储结……兔年A股行情密码早知道兔年行情即将开始,市场能涨多少点,或跌多少点?这是股民经常问的,但其实能问这样问题,可能本身就暴露了自己的思维误区。因为市场大部分行情都是无法预测的,所以,预测的意义是储备相关……恋情被曝光!国羽又一现役世界冠军情侣档诞生,郎才女貌甜蜜般配北京时间2月16日,印尼羽毛球传奇明星亨德拉通过社交媒体晒出与中国运动员刘雨辰、黄雅琼一起吃饭的照片,并在与妻子的聊天互动中透露了两人正在恋爱的消息,引发网友们强烈关注。……浙江杭州南宋古街年味浓郁人气旺清河坊复古房屋前灯笼高挂、人头攒动。王刚摄游客在清河坊弥勒佛像前拍照打卡。王刚摄清河坊巷道内灯笼高挂。王刚摄清河坊方回春堂门外灯笼高挂,吸引游人。王刚摄……佗道医疗与山东大学共建骨科人工智能与机器人交叉研究中心!近日,佗道医疗科技有限公司(以下简称佗道医疗)与山东大学达成战略合作,以山东大学齐鲁医院作为研究中心依托基地,创新共建产学研医一体化管理模式的骨科人工智能与机器人交叉研究中心,……浙江入境团队游重启杭州今晚迎来首个香港旅游团2月15日晚,18名香港游客抵达杭州萧山国际机场,这是国家恢复内地居民与香港、澳门团队旅游经营活动后的浙江(杭州)首个香港入境旅游团,标志着浙江(杭州)入境游正式重启。香港游客……三星GalaxyS23内存缩水?标准版开倒车,边框厚度增加!三星GalaxyS23系列定档2月1日(国内时间2月2日凌晨)全球发布,随着时间临近,三款手机详细配置遭到曝光。网友惊讶的发现,为了与高配版进行区分,三星对标准版WiFi、边框……
张纪中又晒全家福,娇妻穿长裙紧搂老公,三个孩子被指三个模样在如今的娱乐圈中,老牛吃嫩草的现象可以说并不罕见,多数人对这种恋爱婚姻的态度都是不太赞同的,因为除了两人在外表上不太般配,也存在许多其他问题。他们的差距也是非常大,只能说让人理……想一个人时,不必频繁联系,这样做会让他主动来见你文丨桃小菁春风十里不如你,小菁在这里,等着你!有人说,想念是忍不住的,哪怕这份想念还没有那么强烈,也迫切地想让对方知晓。为了将内心的想念毫无保留地传递出来,不……这个夏天,去一趟香格里拉吧您想要一个可以远离城市喧嚣,可以自由流放的地方,那就去香格里拉吧。香格里拉这个藏地有一处非常漂亮的地方,雨季的时候她是纳帕海,旱季的她是依拉草原。夏季的纳帕海,静谧……一加Ace竞速版测评很好选,甚至可以闭眼买一加在重新整理产品线后,新机发布节奏相比过去快了不少,4月推出一加Ace之后,又在刚刚发布了该机的衍生版本一加Ace竞速版(下文简称竞速版)。不过想想也是,毕竟618快到了。……NBA消息76人组三巨头,贝弗利接连炮轰保罗力挺哈登,欧文后76人组三巨头今日,ESPN记者布莱恩文霍斯特爆料,76人正在积极寻找搭档乔尔恩比德和詹姆斯哈登的第三球星,高层征战酝酿一个宏大的计划。哈登的续约只是时间和细节的问题!……折叠屏手机诞生4年了,为何用的人这么少?每经记者:王晶每经编辑:董兴生,卢祥勇,盖源源千篇一律的手机外形令用户产生视觉疲劳,而一块可以折叠起来的屏幕,不仅给用户带来更多个性化选择,也为正在寻找新市场爆发点的手机……俄乌冲突,无意解决中国多年的能源难题,人民币也会国际化?俄乌冲突升级,继10月16日,中国呼吁公民撤乌,今日八国集体呼吁公民撤乌。一场未知的冲突又将再次升级。俄乌冲突已逐渐演变成为西方各国集体对与俄罗斯一对多的国际紧张局面。在普京不……表面上是高性能旗舰,但是希望长点心眼,因为本质更复杂看文章听音乐是种享受,想听什么留言告知(都是付费无损包)在前段时间,手机市场出现了一台相对全新的旗舰手机叫做荣耀Magic4,定价是4499元,相应版本是8GB256GB……退休了才懂,有几种同事,最好断联01hr好不容易工作一辈子,熬到退休,却迅速跟职场里面的一些老同事断绝联系。不是生性凉薄。而是为了能在退休后,将更多的时间和精力放在那些真正的知己好友身上。像……山里的女人四川的山区,有川西北和川西南的崇山峻岭,又有群山逶迤的川中丘陵。我时常走在川中的青翠群山幽谷之中,芳草萋萋,林木蔽日。春夏秋冬,四季分明。在这样的环境里,因为有了山里的女人,群……新车刚亮相就要改设计,销量腰斩的魏牌怎么了?记者周姝祺编辑已经登录工信部新车申报目录的新车突然要改设计,这可能是汽车行业历史上第一次。长城汽车旗下高端新能源品牌魏牌近期宣布,将已经登录工信部新车申报目录……PC运行安卓应用新选择,代替Win11安卓子系统想要在Windows系统上运行安卓应用,除了可以用安卓模拟器外,Win11系统也支持了安卓子系统,不过微软的安卓子系统比较吃硬件资源,并且3D性能差,不支持映射键盘,对于喜欢在……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网