一种分布式系统的时序控制与同步方法

文档序号:409946 发布日期:2021-12-17 浏览:11次 >En<

阅读说明:本技术 一种分布式系统的时序控制与同步方法 (Time sequence control and synchronization method of distributed system ) 是由 侯正平 薛垒 申臻 魏冬冬 于清华 于 2021-09-27 设计创作,主要内容包括:本发明公开了一种分布式系统的时序控制与同步方法,该方法包括:S100:预设时序控制与同步策略,编写时序控制与同步程序,并在进行封装后形成节点控制程序包,以使节点控制程序包作为独立线程在对应节点上运行;S200:基于各节点中封装后的节点控制程序包,根据不同的场景分类,在对应节点的发送数据处以及接收数据处,利用节点控制程序包对本地节点及相邻节点执行包括不做控制、挂起、暂停、缓存、恢复在内的不同时序控制,以便分布式系统网络的全局时序控制与同步。本发明结同步机制简单、低功耗,利用数据流保证节点间的依赖关系,并且收发同步不因节点的运行速度差异而变换,不需要引入额外控制端。(The invention discloses a time sequence control and synchronization method of a distributed system, which comprises the following steps: s100: presetting a time sequence control and synchronization strategy, compiling a time sequence control and synchronization program, and forming a node control program package after packaging so that the node control program package is used as an independent thread to run on a corresponding node; s200: based on the node control program packages encapsulated in each node, classifying according to different scenes, and performing different time sequence control including no control, suspension, pause, cache and recovery on a local node and adjacent nodes by using the node control program packages at the data sending position and the data receiving position of the corresponding node so as to facilitate the global time sequence control and synchronization of the distributed system network. The invention has simple synchronization mechanism and low power consumption, ensures the dependency relationship between the nodes by using data flow, does not change the receiving and transmitting synchronization due to the difference of the running speeds of the nodes, and does not need to introduce an additional control end.)

一种分布式系统的时序控制与同步方法

技术领域

本发明涉及网络控制技术领域,尤其涉及一种分布式系统的时序控制与同步方法。

背景技术

分布式系统是指多个独立运行的节点在以某种形式互联后,获得在节点之间进行信息交互能力,且具有一定独立性的网络计算系统。分布式系统通常有明确的计算任务,并且将任务分割为许多子任务,交由系统中不同的节点执行,同时在节点之间也存在相互的远程调用和依赖关系。现有分布式系统关注重点包括:如何确保分布式系统中的各个节点按照正确的时间完成交互,如何在节点信息传递出息故障时及时纠正,以确保时序正确。

随着技术的发展,与分布式概念对应的同步方式也多种多样,目前的分布式系统可以有以下几种控制策略,一、通过对资源进行访问控制来保证时序正确,如使用资源锁,该类的分布式系统主要需要解决的问题是网络资源抢占的问题,整个系统的层面并不存在对过程顺序有明确要求的固定过程,运行在各个节点上的过程也不需要严厉的全局调度;二、系统本身对各个部分提交的作业只作时间要求而不作时序控制的要求,这一类分布式系统着眼的问题是保证各个节点拿到数据的一致性和完整性,如数据库系统。三、使用中心节点或全局时钟的概念进行全局授时,使用全局统一的时间对整个系统进行时序控制。但是全局授时的设计使得运行速度快的设备不得不频频暂停等待,并且引入了在系统的原本设计中不存在的节点,使结构变得复杂。

对于多设备独立运行,但各个设备之间存在依赖关系,具有明确的数据处理次序的分布式系统,由于节点各自具有本地时钟和运行周期。需要一种更加灵活的控制机制,使得设备能够基于自主判断形成全局的控制时序控制。

发明内容

本申请实施例通过提供一种分布式系统的时序控制与同步方法,针对现有对节点间具有特定要求的分布式网络,规定时间的通信数据流,以保证节点之间的依赖关系,使节点间的同步关系不因各个节点运行速度的差异而被破坏,利用时钟抢占的方式使得本地时钟在全局形成一个变尺度时钟,从而提供同步的能力。

本申请实施例提供了一种分布式系统的时序控制与同步方法,所述方法包括:

S100:在分布式系统网络中的各个节点配置时序控制与同步策略属性,形成时序描述文件,作为节点控制程序的输入;根据所述时序控制与同步策略编写时序控制与同步程序,并在进行封装后形成节点控制程序包,供分布式系统网络中的本地节点或相邻节点调用,以使分布式系统网络运行时,所述节点控制程序包作为独立线程在对应所述节点上运行;节点控制程序包运行时,依据时序描述文件,按照实际的通信模型决定时序控制与同步策略的具体实施。

S200:基于各所述节点中封装后的所述节点控制程序包,在对应节点的发送接口处以及接收接口处,根据不同的场景分类,利用所述节点控制程序包对本地节点及相邻节点执行包括不做控制、挂起、暂停、缓存、恢复在内的不同时序控制,以便分布式系统网络的全局时序控制与同步。

进一步地,步骤S100中的所述时序控制与同步策略包括如下控制规则:

本地节点向后序节点发送报文,当报文不存在时,判定本地节点未到预定时间;当报文正常到达后序节点,判定时间可容忍时,对本地节点及相邻节点不做控制;当超出预定时间未能发送报文时,判定本地节点被前序节点拖累时,通知后序节点等待,并将向后序节点发送报文的场景转化为接收前序节点发送报文的场景;

本地节点接收前序节点发送的报文,当接收的报文早到时,判定本地节点由于速度较慢导致报文早到时,对本地节点执行挂起控制以及对前序节点执行暂停控制;当正常接收到报文,判定时间可容忍时,对本地节点及相邻节点不做控制;当超出预定时间报文未到,判定本地节点速度较快时,对本地节点执行暂停控制;当报文晚到,判定本地节点快时,对本地节点执行暂停控制;当本地节点处于暂停状态时,对本地节点及相邻节点不做控制,只依靠网络缓冲区保存报文;当本地节点处于挂起状态时,对本地节点及相邻节点不做控制。

进一步地,所述步骤S200之前还包括根据所述时序控制与同步策略为各所述节点编写时序描述文件,通过所述时序描述文件预设各所述节点包括信息收发时刻、对时间偏差的忍耐度在内的相关属性。

进一步地,在所述步骤S100中的各所述节点控制程序包包括四个控制接口,分别为用于获取本地节点当前时钟计数的时钟计数接口,用于使节点挂起的节点挂起接口,用于使节点暂停的节点暂停接口以及用于使节点恢复运行的节点恢复接口。

进一步地,所述时序描述文件采用格式化方式描述各所述节点的收发要求,并作为时间是否正确的判断输入,以便利用时钟计数提供本地时间作为判定输入。

进一步地,各所述节点中的节点控制程序包的判定结果在对应节点本地产生,且所述节点控制程序包仅作用于本地节点以及相邻节点,以实现各节点自身与相邻节点的自主控制形成全局的时序控制和同步。

进一步地,在所述步骤S200中,节点的发送接口处利用所述节点控制程序包发送函数,当节点主动调用发送函数时会先执行判断,根据时间计算结果决定直接发送或执行控制;在接收接口处,当节点监听到有数据到达或节点的接收数据处理函数被调用时,依据时间计算结果进行控制或直接接收数据,当使用独立的守护线程,处理报文未在预定时间到达的情况。

本申请实施例中提供的技术方案,至少具有如下技术效果:

1,针对现有对节点间具有特定要求的分布式网络,规定时间的通信数据流,以保证节点之间的依赖关系,使收发同步,且不因节点运行速度的差异而被破坏。

2,本申请利用时钟抢占的方式使得本地时钟在全局形成一个变尺度时钟,从而提供同步的能力。

3,本申请具有低时间损耗,不向分布式系统网络引入额外的控制节点,尤其在支撑硬件仿真的分布式系统中,基于真实系统的时序确依靠硬件保证,在仿真系统中通过本发明技术可以解决由于各节点的特性与性能差异产生误差的问题。

4,本申请不需要复杂的全局同步机制,不需要全局时钟和额外的控制节点,以各个节点的本地时钟作为通信行为的时间依据,使用多时钟多尺度的控制方法减小时间损耗。

附图说明

图1为本申请实施例中一种分布式系统的时序控制与同步方法的流程图;

图2为本申请实施例中的一个具有明确依赖关系的分布式系统示意图;

图3为本申请实施例中时序控制与同步方法执行过程示意图;

图4为本申请实施例中多节点间时钟中变换示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

本申请实施例提供了一种分布式系统的时序控制与同步方法,该方法针对节点间具有特定时序要求的分布式系统网络,利用规定时间内的数据流通信状态以确保节点之间的依赖关系,使收发位置同步且不因节点运行速度的差异而被破坏,利用时钟抢占的方式使本地时钟在全局形成一个变尺度时钟,从而提供分布式系统网络节点同步的能力。

参考附图1所示,本实施例中的分布式系统的时序控制与同步方法包括如下步骤。

步骤S100:在分布式系统网络中的各节点配置时序控制与同步策略属性,形成时序描述文件,作为节点控制程序的输入;根据时序控制与同步策略编写时序控制与同步程序,并在进行封装后形成节点控制程序包,供分布式系统网络中的本地节点或相邻节点调用,以使分布式系统网络运行时,节点控制程序包作为独立线程在对应节点上运行;节点控制程序包运行时,依据时序描述文件,按照实际的通信模型决定时序控制与同步策略的具体实施。

步骤S200:基于各节点中封装后的节点控制程序包,在对应节点的发送接口以及接收接口处,根据不同的场景分类,利用节点控制程序包对本地节点及相邻节点执行包括不做控制、挂起、暂停、缓存、恢复在内的不同时序控制,以便分布式系统网络的全局时序控制与同步。

在步骤S100中,分布式系统网络表示为多个独立运行的设备,在互联后使设备之间具有信息交互能力的网络系统。该网络系统中的每台设备作为一个网络节点。

在步骤S100中,时序控制与同步策略是节点控制程序包对节点的一切控制行为规则,时序控制与同步策略可以包括如下控制规则:

获取节点间场景,在节点发送或接收报文时,通过节点控制程序包进行节点场景分析判定,根据不同的节点场景对节点进行相应控制。

本地节点向后序节点发送报文,当报文不存在时,判定本地节点未到预定时间;当报文正常到达后序节点,判定时间可容忍时,对本地节点及相邻节点不做控制;当超出预定时间未能发送报文时,判定本地节点被前序节点拖累,通知后序节点等待后,将向后序节点发送报文的场景转化为接收前序节点发送报文的场景。

本地节点接收前序节点发送的报文,当接收的报文早到时,判定本地节点由于速度较慢导致报文早到时,对本地节点执行挂起控制以及对前序节点执行暂停控制;当正常接收到报文,判定时间可容忍时,对本地节点及相邻节点不做控制;当超出预定时间报文未到,判定本地节点速度较快时,对本地节点执行暂停控制;当报文晚到,判定为本地节点快时,对本地节点执行暂停控制;当本地节点处于暂停状态时,对本地节点及相邻节点不做控制,只依靠网络缓冲区保存报文;当本地节点处于挂起状态时,对本地节点及相邻节点不做控制。

具体可参见下表1所示。

表1

步骤S100的时序控制与同步策略中,通常包括多个场景分类,节点控制程序包在进行场景分析时,判定对应场景分类,根据场景分类执行相应的节点控制操作。具体可以参见表1,节点控制程序包进行节点场景分析后判定出节点的场景分类,根据对应的场景分类执行相应的节点控制操作,并且从表1中可以看出,基于报文的收发状态,因此节点控制程序包在执行发送接口发送报文或者接收接口接收报文时发挥作用。

本实施例中的各节点的节点控制程序包的判定结果在对应节点本地产生,且节点控制程序包仅作用于本地节点以及相邻节点,以实现各节点自身与相邻节点的自主控制形成全局的时序控制和同步能力。因此可以理解为,所有的节点控制程序包的判定都是在本地节点产生,且仅作用于本地节点和相邻节点,使得通过各个节点对自身以及相邻节点的自主控制形成全局的时序控制和同步能力。

进一步地,在步骤S100中,根据时序控制与同步策略编写时序控制与同步程序,并进行封装后形成节点控制程序包。其中,时序控制与同步程序封装的目的是为节点提供易用的控制接口。常规可采用静态库和动态库。在节点的发送接口处使用节点控制程序包发送函数,当节点主动调用发送函数时会先执行判断,根据时间计算结果决定直接发送或执行控制。在接收接口处有两种控制机制,第一种为当节点监听到有数据到达或节点的接收数据处理函数被调用时,依据时间计算结果进行控制或直接接收数据,第二种是使用独立的守护线程,处理报文未在预定时间到达的情况。

在步骤S100中的各节点控制程序包包括四个控制接口,分别为用于获取本地节点当前时钟计数的时钟计数接口,用于使节点挂起的节点挂起接口,用于使节点暂停的节点暂停接口以及用于使节点恢复运行的节点恢复接口。进一步可以理解为,分布式系统网络中的每个节点设有至少四个用于节点程序包控制的控制接口,第一种用于获取本地节点的当前时钟计数,第二种用于使节点挂起的命令接口,第三种用于使节点暂停的命令接口,第四种用于使节点恢复运行的接口。其中,节点挂起接口、节点暂停接口以及节点恢复运行接口是节点控制程序包的控制行为得以实施的基础。其中,挂起与暂停的区别在于:挂起时节点控制程序包阻塞通信行为,本地时钟仍在运转;暂停指节点上的时钟和程序同时停止。控制接口由各个节点上运行的节点控制程序各自提供。时钟计数是各个节点自身的本地时钟,各本地时钟的计数无比较意义。

本实施例中的节点控制程序包在节点的两个位置发挥控制作用,分别是进行节点网络通信的节点发送接口和节点接收接口。节点控制程序根据发送接口/接收接口的运行状态,控制对应控制接口执行操作。具体地,通过时钟计数接口提供本地节点时间,以作为节点控制程序包的判定输入,挂起、恢复、暂停接口提供节点控制程序包的基础控制操作。本实施例中的分布式系统网络在运行过程中,任意时刻都有可能出现节点被暂停或恢复或挂起等运行情况,使整个分布式系统网络对局部节点进行控制,形成分布式系统网络全局的时序控制与同步。其中,本地节点获取暂停或恢复运行的命令可能来自于本地节点,也可能来自于相邻节点,且只有这两种来源。

在步骤S200之前还包括根据时序控制与同步策略为各节点编写时序描述文件,通过时序描述文件预设各节点包括信息收发时刻、对时间偏差的忍耐度在内的相关属性。因此可以理解为本实施例中的分布式系统网络中为每个节点编写时序描述文件,各时序描述文件用于设定对应节点的收发报文时刻、对时间偏差忍耐度以及其他相关属性。为每个节点编写独立的时序描述文件,规定此节点应当在何时收发数据,具有何种依赖关系、时钟和周期的具体数值。

进一步地,本实施例中的时序描述文件采用格式化方式描述各节点的收发要求,并作为时间是否正确的判断输入,以便利用时钟计数提供本地时间作为判定输入。因此,本实施例中的时序描述文件和时钟计数接口是节点控制程序包执行对应控制的依据基础。当然时序描述文件包括但不局限于上述判定方法。本实施例中的时序描述文件为一种具备特定格式,且可以被计算机程序理解的文件。每个节点都有自己单独的时序描述文件。各节点的时序描述文件要求具备但不局限于下述信息:节点名称、本节点支持的报文类型、本地节点的运行周期、每个周期内的规定通信行为时序。其中,通信行为中记录的信息包括但不局限于:报文类型、发送方ID、接收方ID、预定到达时间、以时间度量的对报文早到或迟到的容忍度、是否周期性发送等。

在步骤S200中,通过节点控制程序包对本地节点及相邻节点执行不同的时序控制,使分布式系统网络全局实现控制与控制,因此可以理解为,基于各个节点设置的节点控制程序包,节点间进行报文传输时,节点控制程序包供节点调用,使得节点控制程序包在分布式系统网络报文传输时,节点控制程序包作为独立线程伴随节点运行,且不影响报文传输。可以看出,参考图2中,在每一个节点间具有明确依赖关系的分布式系统网络中,每个拥有前序节点的节点都需要依据前序节点的报文向后序节点发送报文。依赖关系可以成环也可以不成环,参见图2的虚线箭头。

本实施例中,参考图3所示,节点控制程序包执行节点控制示意图,步骤如下:S211,控制分布式系统网络中的各节点主进程启动;S212,初始化各节点控制程序包,并读取各节点中的时序描述文件;S213,将读入时序描述文件的节点控制程序包载入同步策略,根据同步策略对各节点执行时序控制与同步操作,包括对前序节点的主动控制、后序节点被回调函数触发控制、启动守护线程中的检查报文是否在预定时间到达,并依据本地时间执行控制。

通过每个节点对自身及其相邻节点的控制,形成分布式系统网络的全局时序控制与同步,参考附图4所示,3个具有依赖关系的节点在单周期内的数据流。图中的箭头表示一次通信行为,三条竖线表示三个设备各自的时间,各节点彼此间不具有可比性,加粗的部分表示真实起作用的时钟。可以看出,本发明的方法利用在各个节点的本地时钟间跳转的方式,形成了概念上的全局时钟。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器学习模型的训练方法、服务器及计算机设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!