一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于时延感知的心跳控制方法及分布式系统与流程

2023-02-02 02:32:28 来源:中国专利 TAG:


1.本发明涉及分布式系统维护领域,具体涉及一种基于时延感知的心跳控制方法及分布式系统。


背景技术:

2.传统的分布式系统往往采取主从结构,分主节点和从节点。主节点负责接收用户或其他系统提出的作业请求,并根据其自身的资源分配策略进行任务的调度与分配,将作业划分为一个个在不同节点上进行的任务,同时它也负责管理与检测整个集群的运行状态。与之相对的是从节点,它接收主节点分配给它的任务并运行,其运行的过程是不依赖主节点的。因此,理论上主节点与从节点之间只有当分发任务和汇报完成情况时需要进行通信,然而,这样的主节点与从节点之间的通信是不规律且具有很大随机性的。一旦从节点失效,主节点很难及时发现并对自身资源调度做出反应。因此心跳机制是分布式系统维持其容错性的一个重要机制,其通过主节点与从节点周期性的通信来实现探活与收集元数据加速调度。
3.大数据环境下,随着集群规模的扩大,传统心跳机制也暴露出愈加明显的不足:对于其上没有执行任务的节点(例如节点上并没有容器正在运行),冗余的心跳包既加重了集群内部的网络负载,也使得主节点的资源监控模块的负担增加。对于其上有任务运行的节点,心跳信息也仅仅包括其上运行的容器信息以及任务信息,而这些信息在一个任务执行时仅在开始阶段和结束阶段变化得比较频繁,在两次心跳间隔之间容器信息和任务信息不变的情况下,这样的心跳包对于主节点的资源调度没有实际意义,却仍需要花费计算资源去处理。
4.在分布式系统中,想要以更低延迟来获取从节点信息,就要增加心跳的发送频率,而增加心跳的发送频率又势必带来大量冗余的心跳包,增加集群的网络负载以及主节点资源监控模块的负载导致挤占计算资源。针对这一问题,现有的一些解决方法大多采用根据节点运行情况调整心跳间隔的方法。但这些方法聚焦于节点状态,无法在网络层面对心跳机制实现优化,导致整体时延仍然较高,影响机制效率。存在进一步改进的空间。


技术实现要素:

5.本发明的目的是提出一种基于时延感知的心跳控制方法,解决现有心跳机制中整体时延过高的问题。
6.为了实现上述发明目的,本发明采用如下的技术方案:
7.第一方面,一种基于时延感知的心跳控制方法,应用于包括边缘节点、控制节点、中心节点以及将边缘节点连接至中心节点的可编程交换机的分布式系统中,所述方法包括以下步骤:
8.边缘节点利用源路由机制将路径上经过的所有端口封装在心跳包中,经由可编程交换机将心跳包发送至中心节点;
9.中心节点根据所收到的心跳包内带的遥测信息统计心跳包的总体时延,定期向网络内进行带内网络遥测更新链路延迟信息,并上报控制节点;
10.控制节点根据当前网络的链路时延以及可编程交换机的负载,构建以最小化接收端接收数据量以及心跳包接收总时延为目标的优化问题并求解,并依据求解结果决定各节点组是否选择聚合该组的心跳包,以及该节点组选择哪一个交换机进行心跳包的聚合,其中节点组是指与同一边缘交换机直接相连的所有边缘节点,一个节点组中的所有节点只能选择同一个可编程交换机进行心跳包聚合,或者选择不聚合;
11.可编程交换机对收到的心跳包进行包头解析,判断该心跳包是否需要在本交换机上进行聚合,如果需要,则判断当前已经聚合的心跳包数量是否达到聚合阈值,若未达到,则将该心跳包中的内容以比特流形式存储于对应队列中,若达到,则将对应队列的比特流取出,重新解析为心跳包,将解析后的心跳包存入心跳包的包头栈中;如果队列中还有未处理的心跳包,则利用可编程交换机的再循环机制,将该聚合心跳包重新发往入端口,让其重新经过包头处理流水线,直到该心跳包队列清空。
12.第二方面,提供一种分布式系统,包括边缘节点、控制节点、中心节点以及将边缘节点连接至中心节点的可编程交换机;
13.边缘节点,利用源路由机制,将路径上经过的所有端口封装在心跳包中,经由可编程交换机将心跳包发送至中心节点;
14.中心节点,根据所收到的心跳包内带的遥测信息统计心跳包的总体时延,定期向网络内进行带内网络遥测更新链路延迟信息,并上报控制节点;
15.控制节点,根据当前网络的链路时延以及可编程交换机的负载,构建以最小化接收端接收数据量以及心跳包接收总时延为目标的优化问题并求解,并依据求解结果决定各节点组是否选择聚合该组的心跳包,以及该节点组选择哪一个交换机进行心跳包的聚合,其中节点组是指与同一边缘交换机直接相连的所有边缘节点,一个节点组中的所有节点只能选择同一个可编程交换机进行心跳包聚合,或者选择不聚合;
16.可编程交换机,在接收到节点组的心跳包时对包头进行解析,判断该心跳包是否需要在本交换机上进行聚合,如果需要,则判断当前已经聚合的心跳包数量是否达到聚合阈值,若未达到,则将该心跳包中的内容以比特流形式存储于对应队列中,若达到,则将对应队列的比特流取出,重新解析为心跳包,将解析后的心跳包存入心跳包的包头栈中;如果队列中还有未处理的心跳包,则利用可编程交换机的再循环机制,将该聚合心跳包重新发往入端口,让其重新经过包头处理流水线,直到该心跳包队列清空。
17.相比于现有技术,本发明具有以下有益效果:本发明通过将一组边缘节点的心跳包进行聚合,可以有效降低心跳机制对于网络的负载与主节点压力。心跳包聚合是通过通过可编程交换机定义网络协议,提取心跳包中的信息再完成聚合的方式实现。同时考虑到心跳包聚合会带来额外的时延,在进行聚合之前首先通过聚合点选择算法将一组节点的聚合点确定为一台交换机,再在被选定的交换机进行聚合操作,实现主节点数据量负载与心跳包延迟之间的平衡。本发明的心跳控制方法从网络层面优化心跳机制,可以在不调整分布式系统心跳间隔的前提下,实现大幅度减少主节点接收的数据量,控制整体时延,从而达到大幅优化整体系统性能的目标。
附图说明
18.图1为根据本发明实施示例的模拟网络拓扑图;
19.图2是经聚合之后的心跳包示例;
20.图3是不同算法下接收端数据量的差异情况;
21.图4是不同算法下造成的心跳包总体时延情况。
具体实施方式
22.下面结合附图和实施例对本发明的技术方案作进一步说明。
23.参照图1,在一个实施例中,在模拟网络中应用基于时延感知的心跳控制方法,该心跳控制方法通过提取心跳包中的信息再完成聚合来降低网络负载和主节点压力,该模拟网络系统包括:边缘节点(从节点)、中心节点(主节点)、控制节点以及连接各边缘节点与主节点的网络,其中边缘节点相当于分布式系统中从节点,而边缘交换机则是直接与边缘节点相连的可编程交换机,在一个实施方式中,边缘节点对应主机,主节点对应服务器,而控制节点实际上是一个服务,可以选择额外部署在另一个主机也可以直接部署在主节点上。其中与同一边缘交换机直接相连的所有边缘节点被视为一个节点组,连接各边缘节点与主节点之间的网络在本实施例中的主要作用就是将边缘节点上的心跳信息转发到主节点,同时其中的所有可编程交换机(包括直接与边缘节点相连的可编程交换机,以及其他不直接与边缘节点相连的可编程交换机),均可被心跳包聚合点选择算法选择为心跳包聚合点,其不仅起到正常转发数据包的作用,也可起到实施心跳包聚合的作用;各边缘计算节点上,根据要求发送对应的心跳信息;主节点上运行统计模块,根据所收到的心跳包内带的遥测信息统计心跳包的总体时延,同时定期的向网络内进行带内网络遥测更新链路延迟信息,并上报控制节点;控制节点上运行有心跳包聚合点选择模块,其能获取整个网络的拓扑情况、所有节点组的情况,主节点上报的整体网络的链路时延,其(控制节点)运行心跳包聚合点选择算法,算法为每一个节点组选择一个交换机作为心跳包聚合点或者不选择并生成对应的源路由路径并将结果下发给边缘节点,以产生对应心跳包。
24.针对该分布式系统,用户可以在需求的时候调用控制节点以启动其上的算法,通过最近一次主节点反馈的链路时延情况,运行心跳包聚合点选择算法,将算法得到得结果下发各边缘节点,边缘节点以决策的结果生成对应的心跳包,达到在造成较少额外时延的情况下大幅度减少主节点数据接收量的效果。具体过程如下:
25.(s1)在任意时间(由用户控制该算法何时调用)开始,控制节点根据最新的主节点收集的最新的链路时延情况,以及目前网络的拓扑结构,基于心跳包聚合点选择算法生成聚合点的决策,该决策包括各个节点组是否要将发出的心跳包进行聚合,以及各个节点的心跳包发送的源路由路径,以达到控制心跳包转发路径的目的;
26.(s2)在各边缘计算节点处,按照控制节点发送的源路由路径,转化为对应的源路由包头将其嵌入心跳包中,并根据决策是否要进行聚合在包头上嵌入聚合节点的标签,并以主节点为目的发送心跳包;
27.(s3)在可编程交换机处,如果一个心跳包不选择在交换机处聚合,那么在该交换机收到该心跳包时,会在解析所有包头之后,将源路由包头栈中取出一个包头获得其对应的转发端口,将包头栈中该包头删除,将心跳包从对应端口转发;
28.如果一个心跳包选择在交换机处聚合,那么在该交换机收到该心跳包时,在解析所有包头之后,从源路由包头栈中取出一个包头并获取其对应的转发端口,并将心跳包选择聚合的交换机编号与自身编号进行对比,发现相同之后,在心跳包聚合的数量还没有达到指定阈值的情况下,将该心跳包中的内容转化为字节流,存入该节点组对应的心跳包队列中;
29.如果该心跳包到达交换机处时,心跳包聚合的数量已经达到阈值,那么就将该心跳包对应的转发端口与元数据信息(即心跳包中的内容)存储在处理流水线元数据中,在一次流水线中从该节点组对应队列中取出固定数量的字节流,将这些字节流解析为心跳包,填充对应的包头,并将这些心跳包头压入心跳包栈中,如果一次处理流水线无法聚合所有的心跳包,那么就将该更改后的心跳包从该交换机的出端口重新发回入端口,进行下一轮流水线处理,同时带上在该轮处理中得到的流水线元数据信息,使其在下一轮处理中不需要进行转发表查询等行为,直到将该节点组对应队列中的所有心跳包字节流转化为心跳包压入心跳包栈中,从对应的转发端口转发;
30.(s4)在一轮心跳包发送过程中,所有边缘节点均发送一次心跳包,同时这些被聚合或者未被聚合的分散心跳包会由主节点接收,主节点根据心跳包上携带的交换机时间遥测信息计算所有心跳包的总体时延。
31.具体而言,控制节点调度的总体目标是为了达到在造成较少额外时延的情况下大幅降低主节点接收数据量,建立的优化问题如下:
32.优化目标:min(n βt)
33.其中,n表示接收端(即主节点)接收数据量,当选择聚合时总数据量为节点组的节点数量乘上聚合后单个心跳包的大小,而未聚合时总数据量还要加上每个心跳包包头的大小。t为所有心跳包的总体时延,当选择聚合时由三部分组成,第一部分是从节点组i到交换机j的最大时延,第二部分是心跳包聚合的额外时延,第三部分是从交换机j到主节点的时延,而选择不聚合时则是该节点组i到主节点的最大时延。β表示数据量与总体时延对优化目标影响的平衡系数,其取值可以根据需求进行设定,β越大代表对总体时延的上升越敏感,算法会倾向于不进行聚合
34.更具体而言,该优化目标的约束条件包括:
35.i
i,j
∈{0,1},ii∈{0,1}
ꢀꢀꢀ
公式(1)
[0036][0037]
n=∑
i∈g
|gi|[s
aggii
(s
agg
sh)(1-ii)]
ꢀꢀꢀ
公式(3)
[0038]
t=∑
i∈g

j∈s
{i
i,j
[b
i,j
cj aj] (1-i
i,j
)dj}
ꢀꢀꢀ
公式(4)
[0039]
上述公式中,i
i,j
代表来自节点组i的心跳包是否选择在交换机j上聚合,ii代表节点组i的心跳包是否进行聚合,公式(1)表示这两个决策变量是二进制变量,取值是0或1;公式(2)表示每组至多只能选择一个交换机进行聚合,即只能选一个聚合点或者不聚合;公式(3)表示接收端数据量计算公式,gi代表节点组i所对应的节点集合,s
agg
代表聚合后的心跳包大小,sh代表包头的大小;g代表节点组的集合,s代表交换机的集合;公式(4)表示心跳包总体时延计算公式,b
i,j
代表了从节点组i发送心跳包到交换机j的时延,cj代表了在交换机j上进行心跳包聚合的开销,aj代表了从交换机j发送聚合后心跳包到主节点的时延,di代表了直接从节点组i将未聚合的心跳包发送到主节点的时延。
[0040]
在上述优化问题中,要求解的参数为i
i,j
,代表来自节点组i的心跳包是否选择在交换机j上聚合。s
agg
和sh由心跳包格式和节点组数量计算得到。aj、b
i,j
、cj、di由控制节点基于主节点上报的整体网络的链路时延与控制节点存储的网络拓扑计算得到。
[0041]
对所述优化问题的求解包括:
[0042]
将优化问题的决策变量的定义域限制放松,由整数域放松到实数域,整数规划变为线性规划:
[0043]
优化目标:min(n βt)
[0044]
约束条件:
[0045]ii,j
∈[0,1],ii∈[0,1]
ꢀꢀꢀ
公式(5)
[0046][0047]
n=∑
i∈g
|gi|[s
aggii
(s
agg
sh)(1-ii)]
ꢀꢀꢀ
公式(7)
[0048]
t=∑
i∈g

j∈s
{i
i,j
[b
i,j
cj aj] (1-i
i,j
)dj}
ꢀꢀꢀ
公式(8)
[0049]
式中,仅公式(5)与原问题的公式(1)不同,该约束条件将原本只能取值为0,1的二元决策变量松弛为取值为[0,1]间的实数域;在放松了决策变量的定义域之后,采用实数域上的内点法求解技术对线性规划问题进行求解,在本发明实施例中采用matlab工具包进行求解,得到实数域结果具体地,使用了matlab的linprog工具包,输入的参数为linprog(f,a
ub
,b
ub
,bound),其中f代表优化目标的矩阵形式表达,a
ub
与b
ub
共同组成线性规划中的等式约束,即公式(6),bound表示了解的范围,即公式(5),得到的结果就是每个节点组在每个交换机上倾向于进行聚合的程度,也即是将关于同一节点组i进行求和,得到决策变量。
[0050]
由于需要产生在整数域的0-1决策变量,所以本发明将对得到的在实数域内的解进行舍入整形,从而根据决策变量进行心跳包的发送。
[0051]
具体舍入的方法,也即所述整形化的方法包括:将得到的决策变量的取值结果视为节点组i是否选择聚合的概率,当该值越大的时候越倾向于聚合,在[0,1]间选取一个随机数xi,当其小于时,让ii舍入到1,即决定聚合,而当其大于时,则令ii等于0,即选择不聚合。而当选择聚合时,还需要决策在哪个交换机上聚合,此处由限制条件∑ji
i,j
=ii可知,该随机数xi小于对于任意的交换机k来说,当且仅当xi落入该区间中时,i
i,k
=1,即节点组i选择交换机k作为心跳包聚合点,否则i
i,k
=0(也即节点组i不选择交换机k作为心跳包聚合点),其中u包含了所有编号小于k的交换机,而v包含了所有编号小于等于k的交换机。具体的来说,将[0,ii]的区间划分为一个个小区间,每个区间的长度等于只有当xi落入这个小区间当中时,i
i,j
才会等于1,而这个小区间的长度也就是
[0052]
实验的效果如图2至图4所示,图2是实际聚合之后的心跳包示例;图3展示了在主节点接收数据量方面不聚合、全聚合以及选择在边缘交换机进行聚合的对比;图4展示了在产生的心跳包总体时延方面不聚合、全聚合以及选择在边缘交换机进行聚合的对比。如图2所示,由sr源路由包头来控制心跳包路径,其agg部分为心跳包的聚合包头,由边缘节点发出时就添加进心跳包,心跳包的格式的设计来源于hadoop yarn的没有运行任何应用以及容器的节点产生的心跳包。如果没聚合的话,agg部分就是单个的心跳包,图2中agg细节后
面的

代表有若干个格式与之前相同的心跳包。图3与图4展示了本发明方法在减少接收端数据量的方面的显著效果,在仅使用心跳包聚合方法的时候,边缘交换机全聚合(全部节点组选择在边缘交换机上进行聚合),可以使得接收端接收数据量减少60%,但与此同时,代价是相较于不聚合会产生51%的额外时延。而在采用了心跳包聚合点选择算法之后,使得接收端数据量减少40%,同时仅带来20%的额外时延,从而达到了接收端数据量与额外时延之间的权衡,完成了在大幅减少接收端数据量的同时仅带来较少的额外时延的目标。
[0053]
根据本发明的实施方式,一种分布式系统,包括边缘节点、控制节点、中心节点以及将边缘节点连接至中心节点的可编程交换机,其中,
[0054]
边缘节点,利用源路由机制,将路径上经过的所有端口封装在心跳包中,经由可编程交换机将心跳包发送至中心节点;
[0055]
中心节点,根据所收到的心跳包内带的遥测信息统计心跳包的总体时延,定期向网络内进行带内网络遥测更新链路延迟信息,并上报控制节点;
[0056]
控制节点,根据当前网络的链路时延以及可编程交换机的负载,构建以最小化接收端接收数据量以及心跳包接收总时延为目标的优化问题并求解,并依据求解结果决定各节点组是否选择聚合该组的心跳包,以及该节点组选择哪一个交换机进行心跳包的聚合,其中节点组是指与同一边缘交换机直接相连的所有边缘节点,一个节点组中的所有节点只能选择同一个可编程交换机进行心跳包聚合,或者选择不聚合;
[0057]
可编程交换机,在接收到节点组的心跳包时对包头进行解析,判断该心跳包是否需要在本交换机上进行聚合,如果需要,则判断当前已经聚合的心跳包数量是否达到聚合阈值,若未达到,则将该心跳包中的内容以比特流形式存储于对应队列中,若达到,则将对应队列的比特流取出,重新解析为心跳包,将解析后的心跳包存入心跳包的包头栈中;如果队列中还有未处理的心跳包,则利用可编程交换机的再循环机制,将该聚合心跳包重新发往入端口,让其重新经过包头处理流水线,直到该心跳包队列清空。
[0058]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0059]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0060]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0061]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0062]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,本发明中的迁移节点与工作节点的交互方式,收集物理机和虚拟机的资源和时间信息与在线调度方法在各系统中均适用,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献