【技术实现步骤摘要】
一种基于Raft协议的分布式存储系统中日志项的分发方法
[0001]本专利技术涉及分布式存储领域,具体涉及一种基于Raft协议的分布式存储系统中日志项的分发方法。
技术介绍
[0002]随着电子计算机硬件设备的不断升级,以大数据、云计算以及物联网等为代表的互联网技术得到了快速发展,全球数据量迎来了指数式爆炸增长。传统的单机存储或集中式存储系统通过纵向升级的方式提高自己的存储容量以及存取速度。纵向升级在容量上可以体现为通过增加存储设备或采用磁盘阵列的方式来提升容量,在存取速度上表现为将速度较慢的机械硬盘更换为存取速度更快的固态硬盘等,但是纵向升级总会在某个时期迎来瓶颈,长期得不到进一步的发展。因此,面对全球呈指数式增长的数据量,传统的单机存储或集中式存储在存储性能和存储容量迎来了瓶颈,难以满足在数据快速增长背景下应用对数据存储的需求。
[0003]分布式存储技术在这个背景下应运而生,相比于集中式存储,分布式存储可以通过水平扩展的方式增加系统的容量,达到存储海量数据的目的,同时也可以在用户对系统进行读写请求时将压力分散到系统中不同的节点中,提高分布式存储系统整体的性能,实现系统的负载均衡。分布式存储系统还可以通过将数据备份到不同节点上来实现对数据的异地容灾备份,预防单节点故障带来的数据丢失等问题,提高了数据的安全性、系统的可靠性以及可用性。分布式存储系统在带来上述优于传统集中式存储的优点的同时,也会存在其自身的一些缺陷,比如在实现异地容灾时将数据的多个副本保存在了不同节点上,如何保证这些副本的数据一致性是分布式存 ...
【技术保护点】
【技术特征摘要】
1.一种基于Raft协议的分布式存储系统中日志项的分发方法,用于实现基于Raft协议的分布式存储系统中的领导者节点向跟随者节点分发日志项,该方法包括以下步骤:S1、领导者节点向系统集群中所有跟随者节点发送仅携带心跳信息的附加日志请求,以重置跟随者节点的选举超时计时器;S2、领导者节点根据所有跟随者节点中存在的最大日志项索引,对所有跟随者节点进行排序,获得排序序列;S3、领导者节点根据所述排序序列,为所有跟随者节点指定在本轮心跳函数中进行日志复制的优先级,获得优先级队列;S4、领导者节点根据优先级队列中的各跟随者节点的优先级,计算各跟随者节点在本轮心跳周期中的日志项分发数量;S5、领导者根据计算获得的各跟随者节点在本轮心跳周期中的日志项分发数量,发送携带相应数量的日志项的附加日志请求给对应跟随者节点。2.如权利要求1所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,步骤S2中,所述对所有跟随者节点进行排序,包括:对所有跟随者节点,按照节点的最大日志项索引值的大小,进行升序排序,最大日志项索引值越大,则与领导者节点的日志同步程度越高,最大日志项索引值越小,则与领导者节点的日志同步程度越低。3.如权利要求1所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,步骤S3中,所述领导者节点根据所述排序序列,为所有跟随者节点指定在本轮心跳函数中进行日志复制的优先级,获得优先级队列,包括:首先,指定排序序列中第n个跟随者节点为最高优先级;其中,为排序序列长度,即序列中跟随者节点的个数,floor()为向下取整函数;然后,指定从该第n个跟随者节点开始到最大日志项索引值最高的跟随者节点的优先级依次递减;最后,指定从排序序列中与该第n个跟随者节点相邻且最大日志项索引值较低的跟随者节点到排序序列中最大日志项索引值最低的跟随者节点的优先级依次递减;从而获得优先级从高到低的优先级队列。4.如权利要求3所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,步骤S4中,所述领导者节点根据优先级队列中的各跟随者节点的优先级,计算各跟随者节点在本轮心跳周期中的日志项分发数量,包括:S41、初始化领导者节点在本轮心跳周期剩余可进行分配的日志项数量为load,load=loadNum,loadNum为领导者节点在一轮心跳函数中可以分配给所有跟随者节点的日志项的数量;S42、从所述优先级队列中依次取出跟随者节点进行日志项分配:假设当前进行日志项分配的跟随者当前的索引值为index,若load≥(leaderIndex
‑
index),则为该跟随者节点在本轮心跳中分配(leaderIndex
‑
index)个日志项,然后更新load=load
‑
(leaderIndex
‑
index);leaderIndex为领导者节点当前的日志项最大索引值;若load<(leaderIndex
‑
index),则为该跟随者节点在本轮心跳中分配load个日志项,
然后更新load=0,领导者节点结束日志项分配;S43、判断是否满足:load>0且优先级队列不为空,若是,则返回步骤S42,否则,领导者节点结束日志项分配,进入步骤S5。5.如权利要求2所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,该方法还包括步骤:S6、对步骤S2中获得的排序序列划分为节点数量相同的委托者分组和接收者分组;其中,委托者分组中的节点与领导者节点的同步程度较高,接收者分组中的节点与领导者节点的同步程序较低;S7、领导者节点委托所述委托者分组中的节点对所述接收者分组中处于同一对应位置的节点进行日志项复制。6.如权利要求5所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,步骤S6中,所述对步骤S2中获得的排序序列划分为节点数量相同的委托者分组和接收者分组,包括:若排序序列中的节点数量为偶数,则直接将排序序列中排序在前一半的跟随者节点划分至接收者分组,将排序序列中排序在后一半的跟随者节点划分至委托者分组;若排序序列中的节点数量为奇数,则舍弃排序序列中最中间的节点后,再将排序在前一半的跟随者节点划分至接收者分组,将排序在后一半的跟随者节点划分至委托者分组。7.如权利要求6所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,步骤S7中,所述领导者节点委托所述委托者分组中的节点对所述接收者分组中处于同一对应位置的节点进行日志项复制,包括:领导者节点按序从委托者分组中取出一个委托者节点,并从接收者分组中相应位置取出一个接收者节点,若该委托者节点中委托者日志项索引index
consignor
大于接收者节点中接收者日志项索引index
receiver
,则委托所述委托者节点对所述接收者节点进行日志项复制。8.如权利要求7所述的一种基于Raft协议的分布式存储系统中日志项的分发方法,其特征在于,委托所述委托者节点对所述接收者节点进行日志项复制,具体包括:领导者节点为委托者分组和接收者分组中的每一个跟随者节点设定一个委托复制窗口,每个跟随者节点的委托复制窗口中保存了领导者节点在之前的心跳周期中向其它跟随者委托复制日志项给该跟随者节点的记录;在领导者节点对委托者节点进行委托复制时,根据接收者的委托复制窗口中的记录以及委托者节点的...
【专利技术属性】
技术研发人员:闫科,龚敬,惠孛,
申请(专利权)人:成都开源众智信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。