基于批处理和流水线的分层数据一致性协议优化方法技术

技术编号:18788894 阅读:27 留言:0更新日期:2018-08-29 09:26
本发明专利技术提供了一种基于批处理和流水线的分层数据一致性协议优化方法,包括以下步骤:S1、客户端判断待发送请求数是否大于0,如果是,则进入下一步骤,如果否,则结束;S2、客户端向随机节点发送请求;S3、当节点接收到请求后,转发给其他所有节点;S4、当其他节点收到转发请求后,保存当前请求和请求ID,并向其他所有节点发送只包含请求ID的确认消息;S5、如果对某一个请求ID接收到超过半数的节点的确认信息,则认为该请求已经被多数节点接收,处于可排序状态。本发明专利技术的有益效果是:能够有效降低Multi‑Paxos协议中领导者节点资源消耗,同时保证较高的系统性能并且易于工程实现。

【技术实现步骤摘要】
基于批处理和流水线的分层数据一致性协议优化方法
本专利技术涉及分布式存储,尤其涉及分布式存储中一种基于批处理和流水线的分层数据一致性协议优化方法。
技术介绍
信息技术的发展推动着时代的变革,新一代通信技术、新型计算模式的演进加深了科学研究、商业应用、日常生活等各个应用领域的信息化程度。大数据时代的到来和数据的爆炸性增长,如何高效、可靠地存储海量数据成为了一项极具挑战性的工作。传统的单一节点的集中式存储系统已经不能满足需求,越来越多的公司采用分布式存储系统。与集中式存储系统相比,分布式存储系统具有可避免单点故障,降低成本和高可扩展性等优点。实现分布式系统的基本操作是数据复制。数据复制是指在可能分布于多个机架、机房、区域范围内甚至全球范围数据中心的不同服务器上对某个对象进行多份相同的拷贝。地域上的复制通过在不同的地理区域中复制冗余数据可以在全球范围内实现数据持久化、容错和容灾等功能。通过复制可以实现数据的高可用性、可扩展性以及实现快速响应。在全球范围服务和应用的时代,复制是解决大数据挑战的必需。伴随着分布式存储系统中的复制产生的一个重要问题是如何保证副本间的数据一致性。分布式系统的数据一致性是指数据在多个副本之间能否保持一致的特性。即能够保证节点互通的情况下从各个节点请求到的数据必须是一致的,同时外部请求对数据做出修改时,各个节点之间也必须同步。如果分布式系统没有做好一致性保证,那么当用户访问不同副本中同一个数据,得到的结果就会不一致,导致系统中的数据不可靠。对于金融或者一些其他的对数据的可靠性要求高的行业来说,数据一致性的要求更为必要。目前能够同时保证较好的可靠性和可用性的分布式存储系统数据复制方式是状态机复制。它通常是基于复制日志实现的,每一个服务器存储一个包含一系列指令的日志,并且按照日志的顺序进行执行。保证复制日志相同是通过一致性算法来实现。就算有些服务器会宕机,一旦指令被正确的复制,每一个服务器的状态机按照日志顺序处理他们,就会输出结果返回给客户端。因此,服务器集群就形成了一个高可靠的状态机。也就是说,状态机复制的内部实现是通过一致性协议来保证各个节点达成一致的执行顺序。在分布式领域为了解决数据的一致性问题,已经有很多研究者提出了不同的一致性协议,其中比较有代表性的有二阶段提交、三阶段提交、Paxos协议以及Raft协议。Google分布式一致性库Chubby的作者曾总结到,所有的分布式一致性算法都是Paxos协议的一个不完备版本。近些年来提出的分布式一致性算法如ZAB协议、Raft协议等都是在Multi-Paxos的思想上加以改进的。这个观点强调了Paxos协议在分布式一致性协议中的重要地位。因此,针对Paxos协议的改进算法也有很多。其中,研究如何解决领导者节点为中心的协议的节点瓶颈问题是近几年对Paxos的研究比较热门的方向之一。在以领导者为中心的分布式一致性协议中,如Multi-Paxos协议、Raft协议、ZAB协议等,领导者节点的资源消耗明显大于普通节点。当负载提高时,领导者节点最先消耗完节点资源成为系统瓶颈。针对这一问题,很多研究者提出了不同的优化方案:a)MenciusMencius为了避免领导者节点成为瓶颈,使用了一种轮转Leader的机制。这样可以实现负载在所有节点上的有效均衡,但是Mencius的一个明显缺点是:容错性很差,任意节点出现故障,都会使系统无法对外提供服务。b)LCRLCR在一个逻辑环上放置副本并使用向量时钟进行消息的排序,LCR是一种高吞吐量的协议,所有工作在节点间平均分配,从而利用所有可用的系统资源。LCR的缺点是系统的延时随着环中节点的数量线性增加,此外,维持环状的结构也增加了协议的开销。c)S-PaxosNunoSantos等人提出了S-Paxos协议,该协议中负载传输工作由所有节点分布式地完成,领导者节点只对请求的ID进行排序,提高了系统资源的整体利用率,有效缓解了领导者节点的压力。该协议的局限性在于:与Multi-Paxos协议相比增加了系统传输的消息总量,在中低负载下,性能不如Multi-Paxos。综上所述,上面的方案能够降低领导者节点负载或者采用无领导者的方式避免领导者节点瓶颈问题,但是这些方案都存在各自的局限之处,例如:Mencius协议虽然采用领导者轮值的方式降低领导者负载但是造成了系统容错性下降的问题;LCR协议使用环状结构分摊负载,但是造成了系统延时增加的问题。因此在高负载环境下,如何提出一种能够有效降低Multi-Paxos协议中领导者节点资源消耗,同时保证较高的系统性能并且易于工程实现的Multi-Paxos改进协议的方法是本领域技术人员所亟待解决的技术问题。
技术实现思路
为了解决现有技术中的问题,本专利技术提供了一种基于批处理和流水线的分层数据一致性协议优化方法。本专利技术提供了一种基于批处理和流水线的分层数据一致性协议优化方法,包括以下步骤:S1、客户端判断待发送请求数是否大于0,如果是,则进入下一步骤,如果否,则结束;S2、客户端向随机节点发送请求;S3、当节点接收到请求后,转发给其他所有节点;S4、当其他节点收到转发请求后,保存当前请求和请求ID,并向其他所有节点发送只包含请求ID的确认消息;S5、如果对某一个请求ID接收到超过半数的节点的确认信息,则认为该请求已经被多数节点接收,处于可排序状态;S6、领导者节点将该请求ID加入当前的批处理包内,判断当前批处理包的大小是否超过限制以及判断形成当前批处理包的时间是否超过最大等待时间,如果超过大小或者超时或者既超过大小又超时,则进入下一步骤,如果既不超过大小又不超时,则将该请求ID放入当前批处理包中;S7、发送当前的批处理包,并将该请求ID放入新的批处理包内;S8、当领导者节点向其他所有节点发送完毕请求ID的批处理包后,判断当前并行运行窗口数是否小于设定值,如果是,则返回步骤S7,如果否,则进入下一步骤;S9、当其他节点接收到请求ID的批处理包后,向其他所有节点发送确认消息,如果节点接收到超过半数的节点的确认消息,则认为该请求已经排序完毕,相应节点执行请求并回复客户端,返回步骤S1。作为本专利技术的进一步改进,步骤S8中的并行运行窗口数的设定值的确定过程包括以下步骤:推导分层Multi-Paxos协议在节点带宽饱和的情况下,批处理参数和流水线参数的关系;假设一个分层Multi-Paxos系统有n个节点,每个节点接收到客户端的请求的概率为Pi,假设第k个节点接收到客户端的概率最大,为Pk;确定瓶颈链路,假设一段时间内客户端共发送了m个请求,此节点的发送消息量和接收消息量分别为Mout和Min,有:Mout=mPk(n-1)Sreq+m(n-1)(1-Pk)Sack+mPkSans(4-1)Min=mSreq+mPk(n-1)Sack(4-2)其中由于Pk=Max{P1,P2...Pi},所以nPk-1≥0,由于确认消息只包含了请求ID,而请求消息包含了请求ID和负载,所以Sreq≥Sack,同时由于副本节点数n≥3,所以m(n-2)(1-Pk)Sack≥0,综上:Mout-Min≥0,即接收消息概率最大的节点的传出链路为整个系统的瓶颈链路;得到传输层每秒能传递给排序层的最大请求ID个数本文档来自技高网
...

【技术保护点】
1.一种基于批处理和流水线的分层数据一致性协议优化方法,其特征在于,包括以下步骤:S1、客户端判断待发送请求数是否大于0,如果是,则进入下一步骤,如果否,则结束;S2、客户端向随机节点发送请求;S3、当节点接收到请求后,转发给其他所有节点;S4、当其他节点收到转发请求后,保存当前请求和请求ID,并向其他所有节点发送只包含请求ID的确认消息;S5、如果对某一个请求ID接收到超过半数的节点的确认信息,则认为该请求已经被多数节点接收,处于可排序状态;S6、领导者节点将该请求ID加入当前的批处理包内,判断当前批处理包的大小是否超过限制以及判断形成当前批处理包的时间是否超过最大等待时间,如果超过大小或者超时或者既超过大小又超时,则进入下一步骤,如果既不超过大小又不超时,则将该请求ID放入当前批处理包中;S7、发送当前的批处理包,并将该请求ID放入新的批处理包内;S8、当领导者节点向其他所有节点发送完毕请求ID的批处理包后,判断当前并行运行窗口数是否小于设定值,如果是,则返回步骤S7,如果否,则进入下一步骤;S9、当其他节点接收到请求ID的批处理包后,向其他所有节点发送确认消息,如果节点接收到超过半数的节点的确认消息,则认为该请求已经排序完毕,相应节点执行请求并回复客户端,返回步骤S1。...

【技术特征摘要】
1.一种基于批处理和流水线的分层数据一致性协议优化方法,其特征在于,包括以下步骤:S1、客户端判断待发送请求数是否大于0,如果是,则进入下一步骤,如果否,则结束;S2、客户端向随机节点发送请求;S3、当节点接收到请求后,转发给其他所有节点;S4、当其他节点收到转发请求后,保存当前请求和请求ID,并向其他所有节点发送只包含请求ID的确认消息;S5、如果对某一个请求ID接收到超过半数的节点的确认信息,则认为该请求已经被多数节点接收,处于可排序状态;S6、领导者节点将该请求ID加入当前的批处理包内,判断当前批处理包的大小是否超过限制以及判断形成当前批处理包的时间是否超过最大等待时间,如果超过大小或者超时或者既超过大小又超时,则进入下一步骤,如果既不超过大小又不超时,则将该请求ID放入当前批处理包中;S7、发送当前的批处理包,并将该请求ID放入新的批处理包内;S8、当领导者节点向其他所有节点发送完毕请求ID的批处理包后,判断当前并行运行窗口数是否小于设定值,如果是,则返回步骤S7,如果否,则进入下一步骤;S9、当其他节点接收到请求ID的批处理包后,向其他所有节点发送确认消息,如果节点接收到超过半数的节点的确认消息,则认为该请求已经排序完毕,相应节点执行请求并回复客户端,返回步骤S1。2.根据权利要求1所述的基于批处理和流水线的分层数据一致性协议优化方法,其特征在于:步骤S8中的并行运行窗口数的设定值的确定过程包括以下步骤:推导分层Multi-Paxos协议在节点带宽饱和的情况下,批处理参数和流水线参数的关系;假设一个分层Multi-Paxos系统有n个节点,每个节点接收到客户端的请求的概率为Pi,假设第k个节点接收到客户端的概...

【专利技术属性】
技术研发人员:王野何荣祥刘璐徐晗侯庆辉张钦宇
申请(专利权)人:哈尔滨工业大学深圳研究生院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1