一种分布式系统多优先级通信的方法和系统的制作方法

文档序号:7815697阅读:254来源:国知局
一种分布式系统多优先级通信的方法和系统的制作方法
【专利摘要】本发明提供一种分布式系统多优先级通信的方法和系统,提出了一种多优先级高效的通信方法,该方法包括接口模块接收用户的通信请求,并将其提交给下层消息调度模块;消息调度模块调度用户通信请求的消息,并将消息分片和重组;根据消息的优先级,优先级调度模块将消息调度完成后的分片信息提交到虚拟链路上;底层传输模块调用底层传输协议,进行虚拟链路上的消息传输,本发明提供的方法实现了高效的链路聚合,屏蔽了底层网络细节,支持多种网络和多种通信协议。
【专利说明】一种分布式系统多优先级通信的方法和系统

【技术领域】
[0001]本发明涉及通信系统的数据传输技术,具体涉及一种分布式系统多优先级通信的方法和系统。

【背景技术】
[0002]分布式系统的节点之间通过消息通信实现分布式系统的功能,因此分布式系统的通信系统的性能和可靠性直接决定了分布式系统提供服务的质量。由于分布式系统传输的消息类型不同,其所需要底层通信系统提供的服务质量也不同;同时由于分布式系统部署网络的复杂性,往往一套系统内部存在多套不同类型,不同协议的网络,需要通信系统能够良好的支持多种通信网络。
[0003]为了克服现有物理网络的传输性能限制导致的数据传输速度受限的问题,一般会在节点之间部署多套物理通信网络,通过端口绑定技术,即将两个或者多个物理端口绑定成一个,变成一个更高带宽的虚拟端口,由网络交换机或者消息发送方来进行数据包在多个物理通信网络之间的负载均衡(Load Balancing),并实现冗余或容错的功能,当任意一条物理网络出现问题之后,系统自动将数据包通过其他物理网络传输,从而提高了网络的可靠性。
[0004]现有的分布式通信系统实现中存在如下问题:
[0005]链路聚合级别较差:通信系统需要向上层应用屏蔽底层网络细节,提供一个支持多优先级和链路聚合的高效通信系统,而现有通信系统实现都存在诸如Luster的LNET通信系统不支持消息的多优先级,对单个消息不支持利用多种不同通信网络等问题,。
[0006]优先级支持简单:现有系统的优先级都是基于特定网络,如Infiniband提供了多种虚通道VL,每一个VL的优先级不同。为了支持底层存在多种不同类型网络的情况,需要在网络之上构建一个统一的通信优先级。
[0007]通信调度较粗:现有分布式通信系统的通信调度粒度较粗,一般以消息为单位。当分布式系统中传输消息很大时,就会出现队头阻塞(Head of Line Blocking)的问题,即该大消息阻塞传输通道,导致后续高优先级的消息不能优先传输。


【发明内容】

[0008]为了克服上述现有技术的不足,本发明提供一种分布式系统多优先级通信的方法和系统,提出了一种多优先级高效的通信系统,实现了高效的链路聚合,屏蔽了底层网络细节,支持多种网络和多种通信协议。
[0009]为了实现上述发明目的,本发明采取如下技术方案:
[0010]一种分布式系统多优先级通信的方法,所述方法包括下述步骤:
[0011](I)接口模块接收用的通信请求,并将其提交给下层消息调度模块;
[0012](2)消息调度模块实现用户通信请求的消息调度,进行消息的分片和重组操作;
[0013](3)根据消息的优先级,优先级调度模块将消息调度完成之后的分片信息,提交到虚拟链路上;
[0014](4)底层传输模块调用底层传输协议,进行虚拟链路上的消息传输。
[0015]本发明提供的优选技术方案中,所述步骤(2)中分片和重组的具体步骤如下:
[0016]A.发送方根据用户发送的消息长度,进行消息分片,每一个分片上记录分片控制信息,包括整个消息长度、消息优先级、消息分片的个数、消息分片在消息中的偏移位置、分片大小、分片消息的数据校验值,将控制信息和分片数据合并,提交到底层传输模块,若消息小于一个分片大小,则作为一个分片消息传输;
[0017]B.底层传输模块发送消息分片,若存在多个分片,则根据消息的优先级,使用优先级调度模块,在多条链路上传输消息;
[0018]C.接收方在接收到第一个分片消息之后,根据分片控制信息,直接将该分片放到接收方消息所在的位置上,更新接收方该消息的分片信息,当消息的所有分片接收完成后,去除分片控制信息,提交给通信系统用户;
[0019]C-1.接收方对接收的分片数据进行校验,若校验分片数据错误,则主动向发送方发送错误控制消息mNAK,通知对应分片m损坏,发送方接收到分片错误控制消息mNAK后,再次重发分片m ;
[0020]C-2.若某一条传输链路中断,优先级调度模块则将该链路上待传输的所有消息重新选择其他链路进行消息传输,底层传输模块采用发送方超时和接收方确认的机制保证消息能可靠发送到接收方,若接收方在接收到重复的分片消息时,则向发送方应答确认消息,表示接收方已经完成该分片的接收操作。
[0021]本发明提供的第二优选技术方案中,所述的步骤(3)和(4)中提交到虚拟链路上进行消息传输具体分为两方面操作:虚拟链路的建立和映射及多优先级消息传输。
[0022]本发明提供的第三优选技术方案中,所述虚拟链路的建立和映射,具体步骤如下:
[0023](I)系统在初始化时根据系统配置支持的优先级个数N,对每一个目标节点,初始化N条队列,每一条队列表示一种优先级的虚拟链路;
[0024](2)根据底层的物理网络特性和协议,依照物理网络对目标节点建立连接,若底层的物理网络支持M种优先级的虚拟通道,则在该网络上建立不大于N条物理通道;
[0025](3)虚拟链路到物理网络的映射根据通信系统的策略指定,支持I对I的映射,即I条虚拟链路到I条物理通道的映射,或I对N的映射,即I条虚拟链路到N条物理通道的映射。
[0026]本发明提供的第四优选技术方案中,所述多优先级消息传输,具体步骤如下:
[0027]A.定义链路对应优先级:在系统启动时,链路管理模块根据系统配置,定义每一条虚拟链路η的优先级值P (η),同时定义每一条虚拟链路的消息轮转阈值MSG (η);
[0028]B.定义消息传输优先级:应用指定消息的传输优先级P (m),提交消息传输请求
[0029]C.消息分片:消息调度模块根据消息的长度和底层网络信息,进行消息的分片,每一个分片的优先级为原消息的传输优先级P (m),并将分片提交给优先级调度模块进行优先级处理;
[0030]D.优先级映射:优先级调度模块根据分片的优先级P (m),将分片调度到对应优先级虚拟链路的传输队列上;
[0031]E.消息发送:底层传输模块从优先级虚拟链路传输队列上获取分片,在对应底层网络上进行分片消息发送;
[0032]E-1.若存在高优先级的消息分片,则优先发送高优先级分片;
[0033]E-2.若同等优先级的消息分片,则使用先来先服务的策略,先发送先到的分片;优先级队列之间的切换采用轮转机制,底层传输模块在优先级为P(n)的队列上发送MSG(η)个消息之后,切换到优先级为P(η-1)的队列继续发送消息。
[0034]本发明提供的第五优选技术方案中,一种分布式系统多优先级通信的系统,该系统包括接口模块、链路管理模块、消息调度模块、优先级调度模块和底层传输模块。
[0035]本发明提供的第六优选技术方案中,所述接口模块负责接收用户的通信请求,将通信请求提交给下层消息调度模块;所述链路管理模块负责虚拟链路的创建和维护,虚拟链路到物理链路的映射,对故障链路的连接重建操作;所述消息调度模块负责实现用户通信请求的消息调度,消息的分片和重组操作;所述优先级调度模块根据消息的优先级,将消息调度完成后的分片消息,提交到对应的虚拟链路上;所述底层传输模块调用传输协议,进行虚拟链路上的消息传输。
[0036]本发明提供的第七优选技术方案中,所述消息调度模块包括:分片信息生成模块、分片状态维护模块和分片接收重组模块。
[0037]本发明提供的第八优选技术方案中,所述分片信息生成模块用于通信发送方,通信发送方根据应用发送消息的大小进行消息分片,消息分片的最大长度根据底层多种物理网络以及采用的通信协议支持的一次消息传输的最大长度而确定;所述分片状态维护模块用于维护分片在通信发送方和接收方的状态;所述分片接收重组模块将接收到的分片消息重组为一个完整的消息,去除分片控制信息,提交给通信系统用户。
[0038]与现有技术相比,本发明的有益效果在于:
[0039]本发明提供了一种面向分布式系统的多优先级通信系统实现方式,该系统通过消息调度机制,实现了消息分片和重组,提高了分布式系统中消息传输的性能,解决了通信调度粒度较粗时出现队头阻塞的问题,以提高性能和可靠性;同时支持消息传输的多种优先级,能够实现链路多级别聚合,保证了高优先级消息的传输质量。

【专利附图】

【附图说明】
[0040]图1是面向分布式系统实现多优先级通信的系统模块示意图
[0041]图2是消息的分片和重组的具体流程图
[0042]图3是多优先级消息传输过程中优先级映射示意图

【具体实施方式】
[0043]下面结合附图对本发明作进一步详细说明。
[0044]一种分布式系统多优先级通信的系统,如图1所示包括如下模块:
[0045]接口模块:负责接收来自用户的通信请求,并将通信请求提交给消息调度模块,进行通信请求的调度。
[0046]链路管理模块:负责虚拟链路的创建和维护,虚拟链路到物理链路的映射,对故障链路的连接重建操作。
[0047]消息调度模块:负责实现用户通信请求的消息调度,实现消息的分片和重组操作。
[0048]优先级调度模块:负责将消息调度完成之后的分片消息,根据消息的优先级,提交到对应的虚拟链路上进行消息传输
[0049]底层传输模块:负责虚拟链路上的消息传输,调用底层传输协议传输消息。
[0050]消息调度模块能够智能的将长度小于分片大小的小消息作为一个分片,在多条物理链路上进行消息传输,提高了小消息的处理1PS ;而对于大消息,将一个大消息切分成多个分片,并发的将多个分片在底层多套物理链路上进行消息传输,实现了带宽的聚合,提高了大消息的传输带宽,同时由于分片操作在消息调度模块完成,向上层应用屏蔽了网络细节,简化了应用通信接口。
[0051]消息调度模块具体可以分为如下几个模块:
[0052]分片信息生成模块:用于通信发送方,通信发送方负责根据应用发送的消息的大小进行消息的分片,消息分片的最大长度根据底层多种物理网络以及采用的通信协议支持的一次消息传输的最大长度而确定。每一个消息分片的控制消息中间包含但并不限于如下信息:整个消息大小,消息优先级,消息分片的个数,消息分片在消息中的位置,分片大小,分片消息的数据校验值等。
[0053]分片状态维护模块:分片状态维护模块用于维护分片在通信发送方和接收方的状态。发送方需要维护分片消息发送了多少,哪些分片消息由于发送失败需要消息重传等;接收方需要维护接收到的消息分片状态等。
[0054]分片接收重组模块:接收方使用接收重组模块将接收到的分片消息重组为一个完整的消息,去除分片控制信息,提交给通信系统的用户。
[0055]一种分布式系统多优先级通信的方法,具体步骤如下:
[0056](I)接口模块接收用的通信请求,并将其提交给下层消息调度模块;
[0057](2)消息调度模块实现用户通信请求的消息调度,进行消息的分片和重组操作;
[0058](3)根据消息的优先级,优先级调度模块将消息调度完成之后的分片信息,提交到虚拟链路上;
[0059](4)底层传输模块调用底层传输协议,进行虚拟链路上的消息传输。
[0060]如图2所示,所述步骤(2)中分片和重组的具体步骤如下:
[0061]A.发送方根据用户发送的消息长度,进行消息分片,每一个分片上记录分片控制信息,包括整个消息长度、消息优先级、消息分片的个数、消息分片在消息中的偏移位置、分片大小、分片消息的数据校验值,将控制信息和分片数据合并,提交到底层传输模块,若消息小于一个分片大小,则作为一个分片消息传输;
[0062]B.底层传输模块发送消息分片,若存在多个分片,则根据消息的优先级,使用优先级调度模块,在多条链路上传输消息;
[0063]C.接收方在接收到第一个分片消息之后,根据分片控制信息,直接将该分片放到接收方消息所在的位置上,更新接收方该消息的分片信息,当消息的所有分片接收完成后,去除分片控制信息,提交给通信系统用户;
[0064]C-1.接收方对接收的分片数据进行校验,若校验分片数据错误,则主动向发送方发送错误控制消息mNAK,通知对应分片m损坏,发送方接收到分片错误控制消息mNAK后,再次重发分片m ;
[0065]C-2.若某一条传输链路中断,优先级调度模块则将该链路上待传输的所有消息重新选择其他链路进行消息传输,底层传输模块采用发送方超时和接收方确认的机制保证消息能可靠发送到接收方,若接收方在接收到重复的分片消息时,则向发送方应答确认消息,表示接收方已经完成该分片的接收操作。
[0066]所述的步骤(3)和(4)中提交到虚拟链路上进行消息传输具体分为两方面操作:虚拟链路的建立和映射及多优先级消息传输。
[0067]所述虚拟链路的建立和映射,具体步骤如下:
[0068](I)系统在初始化时根据系统配置支持的优先级个数N,对每一个目标节点,初始化N条队列,每一条队列表示一种优先级的虚拟链路;
[0069](2)根据底层的物理网络特性和协议,依照物理网络对目标节点建立连接,若底层的物理网络支持M种优先级的虚拟通道,则在该网络上建立不大于N条物理通道;
[0070](3)虚拟链路到物理网络的映射根据通信系统的策略指定,支持I对I的映射,即I条虚拟链路到I条物理通道的映射,或I对N的映射,即I条虚拟链路到N条物理通道的映射。
[0071]如图3所示,所述多优先级消息传输,具体步骤如下:
[0072]A.定义链路对应优先级:在系统启动时,链路管理模块根据系统配置,定义每一条虚拟链路η的优先级值P (η),同时定义每一条虚拟链路的消息轮转阈值MSG (η);
[0073]B.定义消息传输优先级:应用指定消息的传输优先级P (m),提交消息传输请求
[0074]C.消息分片:消息调度模块根据消息的长度和底层网络信息,进行消息的分片,每一个分片的优先级为原消息的传输优先级P (m),并将分片提交给优先级调度模块进行优先级处理;
[0075]D.优先级映射:优先级调度模块根据分片的优先级P (m),将分片调度到对应优先级虚拟链路的传输队列上;
[0076]E.消息发送:底层传输模块从优先级虚拟链路传输队列上获取分片,在对应底层网络上进行分片消息发送;
[0077]E-1.若存在高优先级的消息分片,则优先发送高优先级分片;
[0078]E-2.若同等优先级的消息分片,则使用先来先服务的策略,先发送先到的分片;优先级队列之间的切换采用轮转机制,底层传输模块在优先级为P(n)的队列上发送MSG (η)个消息之后,切换到优先级为P (η-1)的队列继续发送消息。
[0079]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员在其启发下依然可以对本发明的【具体实施方式】进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
【权利要求】
1.一种分布式系统多优先级通信的方法,其特征在于:所述方法包括下述步骤: (1)接口模块接收用户的通信请求,并将其提交给下层消息调度模块; (2)消息调度模块调度用户通信请求的消息,并将消息分片和重组; (3)根据消息的优先级,优先级调度模块将消息调度完成后的分片信息提交到虚拟链路上; (4)底层传输模块调用底层传输协议,进行虚拟链路上的消息传输。
2.根据权利要求1所述分布式系统多优先级通信方法,其特征在于,所述步骤(2)中分片和重组的步骤如下: A.发送方根据用户发送消息的长度,对消息分片,每一个分片上记录分片控制信息,其包括整个消息长度、消息优先级、消息分片的个数、消息分片在消息中的偏移位置、分片大小、分片消息的数据校验值,将控制信息和分片数据合并,提交到底层传输模块,若消息小于一个分片大小,则作为一个分片消息传输; B.底层传输模块发送消息分片,若存在多个分片,则根据消息的优先级,使用优先级调度模块,在多条链路上传输消息; C.接收方在接收到第一个分片消息后,根据分片控制信息,直接将该分片放到接收方消息所在的位置上,更新接收方该消息的分片信息,当消息的所有分片接收完成后,去除分片控制信息,提交给通信系统用户; C-1.接收方校验接收的分片数据,若校验分片数据错误,则主动向发送方发送错误控制消息mNAK,通知对应分片m损坏,发送方接收到分片错误控制消息mNAK后,再次重发分片m ; C-2.若某一条传输链路中断,优先级调度模块则将该链路上待传输的所有消息重新选择其他链路进行消息传输,底层传输模块采用发送方超时和接收方确认的机制保证消息能可靠发送到接收方,若接收方在接收到重复的分片消息时,则向发送方应答确认消息,表示接收方已经完成该分片的接收操作。
3.根据权利要求1所述分布式系统多优先级通信的方法,其特征在于,所述的步骤(3)和(4)中提交到虚拟链路上进行消息传输具体分为两方面操作:虚拟链路的建立和映射及多优先级消息传输。
4.根据权利要求3所述分布式系统多优先级通信的方法,其特征在于,所述虚拟链路的建立和映射,具体步骤如下: (1)系统在初始化时根据系统配置支持的优先级个数N,对每一个目标节点,初始化N条队列,每一条队列表示一种优先级的虚拟链路; (2)根据底层的物理网络特性和协议,依照物理网络对目标节点建立连接,若底层的物理网络支持Μ种优先级的虚拟通道,则在该网络上建立不大于Ν条物理通道; (3)虚拟链路到物理网络的映射根据通信系统的策略指定,支持1对1的映射,即1条虚拟链路到1条物理通道的映射,或1对Ν的映射,即1条虚拟链路到Ν条物理通道的映射。
5.根据权利要求3所述分布式系统多优先级通信的方法,其特征在于,所述多优先级消息传输的步骤如下: Α.定义链路对应优先级:在系统启动时,链路管理模块根据系统配置,定义每一条虚拟链路η的优先级值Ρ (η),同时定义每一条虚拟链路的消息轮转阈值MSG (η); B.定义消息传输优先级:应用指定消息的传输优先级P(m),提交消息传输请求 C.消息分片:消息调度模块根据消息的长度和底层网络信息,进行消息的分片,每一个分片的优先级为原消息的传输优先级P (m),并将分片提交给优先级调度模块进行优先级处理; D.优先级映射:优先级调度模块根据分片的优先级P(m),将分片调度到对应优先级虚拟链路的传输队列上; E.消息发送:底层传输模块从优先级虚拟链路传输队列上获取分片,在对应底层网络上进行分片消息发送; E-1.若存在高优先级的消息分片,则优先发送高优先级分片; E-2.若同等优先级的消息分片,则使用先来先服务的策略,先发送先到的分片;优先级队列之间的切换采用轮转机制,底层传输模块在优先级为P(n)的队列上发送MSG(n)个消息之后,切换到优先级为P(n-l)的队列继续发送消息。
6.一种分布式系统多优先级通信的系统,其特征在于,该系统包括接口模块、链路管理模块、消息调度模块、优先级调度模块和底层传输模块。
7.根据权利要求6所述分布式系统多优先级通信的系统,其特征在于,所述接口模块负责接收用户的通信请求,将通信请求提交给下层消息调度模块;所述链路管理模块负责虚拟链路的创建和维护,虚拟链路到物理链路的映射,对故障链路的连接重建操作;所述消息调度模块负责实现用户通信请求的消息调度,消息的分片和重组操作;所述优先级调度模块根据消息的优先级,将消息调度完成后的分片消息,提交到对应的虚拟链路上;所述底层传输模块调用传输协议,进行虚拟链路上的消息传输。
8.根据权利要求7所述分布式系统多优先级通信的系统,其特征在于,所述消息调度模块包括:分片信息生成模块、分片状态维护模块和分片接收重组模块。
9.根据权利要求8所述分布式系统多优先级通信的系统,其特征在于,所述分片信息生成模块用于通信发送方,通信发送方根据应用发送消息的大小进行消息分片,消息分片的最大长度根据底层多种物理网络以及采用的通信协议支持的一次消息传输的最大长度而确定;所述分片状态维护模块用于维护分片在通信发送方和接收方的状态;所述分片接收重组模块将接收到的分片消息重组为一个完整的消息,去除分片控制信息,提交给通信系统用户。
【文档编号】H04L29/08GK104270441SQ201410508639
【公开日】2015年1月7日 申请日期:2014年9月28日 优先权日:2014年9月28日
【发明者】张攀勇, 彭成, 季旻, 苗艳超 申请人:曙光信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1