当前位置: 首页 > 专利查询>中山大学专利>正文

基于状态机副本管理模型的负载均衡调节方法技术

技术编号:19489113 阅读:200 留言:0更新日期:2018-11-17 12:02
本发明专利技术涉及一种基于状态机副本管理模型的负载均衡调节方法,包括以下步骤:S1.副本节点记录每个线程组的请求的负载情况;S2.在一段时间内根据请求负载的情况计算出新的映射关系;S3.在各个副本节点上重新配置映射关系模块,使用新的映射关系来分发客户端的请求。

【技术实现步骤摘要】
基于状态机副本管理模型的负载均衡调节方法
本专利技术涉及状态机副本管理领域,更具体地,涉及一种基于状态机副本管理模型的负载均衡调节方法。
技术介绍
状态机副本管理模型SMR的关键在于每个副本节点接受相同顺序的操作指令流,从而时刻处于数据一致的状态。而这个相同顺序的操作指令流是利用一致性协议算法(例如:paxos,raft)来保证,从而让系统中的每个副本节点都统一一个确定性的操作顺序。每个副本节点接受相同的操作指令并且顺序一样,那么系统中的任意时刻副本节点间都可以保证一致性。状态机副本管理模型如图1所示,可以看到,出于一致性级别的要求,每个副本节点先对接受到的操作指令进行排序,然后执行操作。因为每个节点都是执行相同顺序的操作指令流,所以在SMR中操作指令的执行过程是串行的。现如今服务器节点的多核多线程的并发能力是非常强大的,传统的串行式SMR执行过程并不能充分的利用服务器节点的资源和并发能力。因此,如何在传统SMR模型基础上提升并发能力便成为改善系统整体运行效率的有效解决方案。许多研究人员对SMR模型的并发能力进行了改进,主要的改进方案大致有以下几种。1、PipelinedSMR(图2所示模型)副本节点串行的执行相同顺序的操作指令流,但是这并没有要求整个系统的逻辑都是单线程的。比如说:服务节点利用一个线程接受操作指令,利用一个线程执行操作指令,还有一个线程用来向客户端返回执行结果。PipelinedSMR提出了管道化的机制来利用服务节点的多核多线程能力,改进了传统SMR模型。但是,这种机制中实际执行命令仍然是一个线程负责,并发能力有限。2、SequentialDelivery-ParallelExecution(SDPE)在传统的SMR模型中,副本节点利用一致性协议层将操作指令排好顺序,然后再去执行。据研究,副本节点可以并发的执行那些访问不同变量的操作指令(无依赖的指令)而不会影响一致性级别。操作指令的依赖性是和应用相关的,需要由开发者来提供或者是从服务代码中自动的提取。SDPE模型通过在副本节点上加入一个指令调度器来分发并发指令。每个副本节点的一致性排序层对操作指令排好顺序之后,指令调度器会对这些操作指令的依赖性进行检查,没有依赖性的指令便可以分配到不同的工作线程来执行,而不会产生冲突,有效的提升了系统的并发处理能力。此外,指令调度器还可以针对工作线程的工作负载情况进行平衡,负载较低的工作线程将分配多一些的指令,有效的改善系统的整体性能。3、ParallelDelivery-ParallelExecution(PDPE)(图3所示模型)PDPE在以上模型的基础上,不仅实现了操作指令执行层的并行化,而且在排序层也实现了指令分发的并行化。相对于SDPE而言,PDPE的副本节点中并没有指令调度器,每个副本节点中有多个线程,并发的负责分发和执行互不依赖的操作指令流。为了保证正确性,一个线程的操作指令流和其他的线程的操作指令流是没有依赖性的。在SDPE中,操作指令的依赖性是在排序后由副本节点的指令调度器来决定的。PDPE与此不同,操作指令的依赖性是在排序之前由客户端来决定的。客户端根据指令的映射关系将无依赖性的指令通过多播的形式分发到副本节点对应的线程组中,不同的副本节点中对应的线程构成一个线程组负责将该线程组接收到的操作指令进行排序,然后对应的工作线程负责执行。不同的线程组之间是并发执行的。PDPE实现了一个全并发的模型:无依赖的操作指令可以并行的分发、排序和执行。有依赖的操作指令相关的多个线程组排序,串行化的执行。例如:一个操作指令与两个线程组有依赖,就需要多播到这两个线程组中,两个线程组对于这个依赖性指令不能并发执行,而需要同步。采取的方式是,在其中选择一个线程组来负责执行,另一个线程组等待执行线程的通知。从上述的描述可以发现,这几种方案都是在不断的发掘命令执行的并发水平,在最大限度使得没有依赖关系的操作指令充分的并行执行,从而提升系统的整体性能。其中传统SMR、PipelinedSMR都不算是并行,实际上仍然是单条线程在执行命令。SDPE做到了命令执行层面上的并行化,但是在一致性排序层面上仍然是串行的。PDPE在此基础上真正做到了排序和执行的并行化,相比较而言充分挖掘了系统的并行化能力。但是PDPE并没有考虑命令或者说请求的负载情况,在负载不均衡的情况下,PDPE的并发能力会大打折扣。
技术实现思路
本专利技术在维持SMR一致性要求的前提下,充分考虑近年来相关研究的成果,从客户端请求负载水平的角度,设计了一种基于状态机副本管理模型的负载均衡调节方法,能够根据客户端请求的负载情况实现动态调节,从而提升系统的整体性能。为实现以上专利技术目的,采用的技术方案是:基于状态机副本管理模型的负载均衡调节方法,包括以下步骤:S1.副本节点记录每个线程组的请求的负载情况;S2.在一段时间内根据请求负载的情况计算出新的映射关系;S3.在各个副本节点上重新配置映射关系模块,使用新的映射关系来分发客户端的请求。优选地,所述步骤S3的具体过程如下:S11.设其中一个副本节点的映射模块被选举为映射模块组的leader;S12.映射模块组的leader向其他副本节点发送消息M,告知系统更改的要求,当其他副本节点的映射模块接收到消息M后,便会停止分发客户请求,此后服务节点接受到的命令将会缓存在命令接受队列中;然后向映射模块组的leader发送消息M’,告知已经做好了更改新映射关系的准备;S13.映射模块组的leader接受到了其他所有副本节点的映射模块发来的消息M’后,映射模块组的leader向下层的排序层发送一个特殊全局同步的命令,这个命令需要在系统的各个线程组中同步,然后映射模块组的leader便可以按照新的映射关系来分发客户端的请求。与现有技术相比,本专利技术的有益效果是:本专利技术所设计的SMR机制,是基于PDPE的基础上,充分的考虑请求负载情况,以实现映射关系的动态调节,从而充分利用服务器的资源,提高系统的整体效率,将系统的并发能力发挥最大化。附图说明图1为状态机副本管理模型的示意图。图2为PipelinedSMR的示意图。图3为PDPE的示意图。图4为将客户端的映射关系由静态改为动态的示意图。图5为系统的模型图。图6为映射关系更改模型的示意图。图7为更改新映射关系的过程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;以下结合附图和实施例对本专利技术做进一步的阐述。实施例1PDPE存在负载不均衡的问题,从根本原因上考虑是因为客户端发送的请求就是不均衡的。这样经过Proxy分发之后肯定也是不均衡的(分发的映射关系是静态的,分发结果会和客户请求的负载水平相一致。),这样就会造成一些线程的任务量非常重,而其他的一些线程任务量非常轻。这样的情况下,PDPE虽然实现了排序和执行两个层面上的并行化,但是在负载不均衡情况下的实际效果仍然不是真正的并行。此外考虑到依赖命令的处理需要全体线程组的同步处理,这就会导致情况的进一步恶化。通过仔细观察PDPE的算法可以发现,客户端有一个静态的映射关系Map,客户端Proxy会根据这个方案将请求分发到指定的线程组中。当客户端的请求负载动态变化时,分发的映射关系是不会变的,这样系统的并发能力和效果也本文档来自技高网
...

【技术保护点】
1.基于状态机副本管理模型的负载均衡调节方法,其特征在于:包括以下步骤:S1. 副本节点记录每个线程组的请求的负载情况;S2. 在一段时间内根据请求负载的情况计算出新的映射关系;S3.在各个副本节点上重新配置映射关系模块,使用新的映射关系来分发客户端的请求。

【技术特征摘要】
1.基于状态机副本管理模型的负载均衡调节方法,其特征在于:包括以下步骤:S1.副本节点记录每个线程组的请求的负载情况;S2.在一段时间内根据请求负载的情况计算出新的映射关系;S3.在各个副本节点上重新配置映射关系模块,使用新的映射关系来分发客户端的请求。2.根据权利要求1所示的基于状态机副本管理模型的负载均衡调节方法,其特征在于:所述步骤S3的具体过程如下:S11.设其中一个副本节点的映射模块被选举为映射模块组的leader;S12.映射模块组的leader向其他副本节点发...

【专利技术属性】
技术研发人员:周萌吴维刚张耿伟
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

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

1