CN1780201A - 一种实现多节点间信息同步的方法 - Google Patents
一种实现多节点间信息同步的方法 Download PDFInfo
- Publication number
- CN1780201A CN1780201A CN 200410091101 CN200410091101A CN1780201A CN 1780201 A CN1780201 A CN 1780201A CN 200410091101 CN200410091101 CN 200410091101 CN 200410091101 A CN200410091101 A CN 200410091101A CN 1780201 A CN1780201 A CN 1780201A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- synchronizing information
- information
- synchronous
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明实现了一种在多节点之间进行数据同步的方法。当有信息需要同步时,主节点将同步信息缓存在同步队列中,并分配一序列号。在进行同步时,主节点从同步队列中取出同步信息加入同步数据区中,将同步信息对应的起始序列号和结束序列号记录到同步消息头结构中,然后主节点通过单播或多播将同步消息发送给其它节点。其它节点收到同步消息后,采用简单的序列号检测机制保证同步可靠性,并将同步数据中的同步信息取出完成信息同步。
Description
技术领域
本发明涉及点到点或多点之间进行信息同步的方法,可广泛应用于数据库、通信设备路由同步、主备冗余***数据同步等领域。
背景技术
专利号为6188695的美国专利《System and method for multi-node datasynchronization》是爱立信公司于1997年12月18日向美国专利局提交,该专利提出了一种多节点之间数据同步的解决方案,以索引管理器(index manager)给所有需要同步的数据统一分配索引(index),该索引与存储数据的地址和数据传输函数(DTF)相关联,当应用程序希望进行数据同步时,首先向索引管理器请求存储数据的索引,索引管理器返回分配给应用程序的索引,同时索引管理器通知DTF接收新的需要同步的索引,将需同步的信息传递给DTF,然后传送到其它节点的DTF完成同步。该方案利用了索引来表示同步条目存储的实际地址,但改方案没有同步可靠性方面的保证。本文中的方案解决了可靠性问题。
申请号为02111898的中国专利《一种主备冗余***中数据同步的方法》是由中兴通讯股份有限公司提出的,该专利实现了主备设备之间的数据同步方法,并实现了同步信息打包压缩/解压缩同步。该方案只实现了主备之间的信息同步,没有实现多节点间的信息同步。另外,该方案采用滑动窗口协议实现信息同步的可靠性,实现控制机制复杂。本文中的方案可实现多节点间信息同步,并采用了简单的序列号校验机制保证信息同步的可靠性。
目前还存在其它一些数据同步方法,例如在主节点为其它节点开辟各自的同步队列,将需要同步的数据加入到每一个同步队列,主节点启动同步过程分别将各同步队列中的数据发送给对应的其它节点,并通过其它节点反馈的同步结果调整同步内容。这种同步方法可以完成信息的可靠同步。但由于为每个其它节点单独进行同步队列管理步,导致所需要的内存资源开销较大。该同步方法需要向其它节点单独实施同步,同一个数据需要发送多个同步消息,占用较多的网络资源,同步节点越多,占用的网络资源越多,如果在同步节点较多时,不得不降低同步速度来保证***的正常运行。另外该同步方法不能及时检测到失步的数据,只能等到同步完成一个周期才能将失步的数据重新进行同步,因此有可能不能及时地将数据同步到其它节点。本发明维护单一的同步队列,所有节点共享同步队列,占用较少的内存资源;并且可采用组播方式一次性将同步数据发送给所有其它节点,通信效率不受同步节点数目的限制。本发明采用简单的序列号检测机制,可以快速的检测到同步是否发生失步,如果发生失步,则通知主节点,从而及时同步发生失步的数据。
发明内容
本发明所要解决的技术问题是,在多节点间实现信息同步,并采用简单的序列号校验机制保证同步的可靠性。
本发明的基本思想是:采用组播/单播实现同步主控节点将同步信息发往所有需要同步的节点上的同步代理,通过同步序列号机制保证同步的可靠性。
本发明实施的步骤为:
1、在主节点上开辟同步信息队列,用于缓存需要同步的信息;
2、当有信息需要同步时,将同步信息加入到同步信息队列;
3、同步主控从同步信息队列当前同步位置进行信息同步,将同步信息发送给其它节点;
4、同步代理接收到同步消息后,分析同步消息中携带的同步序列号信息,判断出同步过程是否发生同步消息丢失,一旦监测到同步消息发生丢失,立即向同步主控反馈同步节点同步状态;
5、同步主控收到同步代理同步消息丢失的反馈后,根据反馈的同步状态,调整当前同步位置。
在步骤1中,同步信息队列记录:同步信息内容地址,与该同步信息对应的同步序列号,以及完成同步所需要的辅助信息,包括当前同步位置、队列头尾信息等。
在步骤2中,当同步信息加入到信息队列时,记录存储同步信息内容的内存地址,同时生成对应的同步序列号。
在步骤3中,同步主控从信息同步队列中获取同步信息内容,将信息内容附到同步消息携带的数据中,直到同步消息数据满。在将同步信息进行打包时,将该同步消息包含的同步信息对应的起始同步序列号和结束同步序列号记录到同步消息头结构中,然后通过组播/单播将同步消息发送给其它节点上的同步代理。
在步骤4中,同步代理收到同步消息后,从同步消息头中获得该同步消息包含的同步信息起始和结束序列号。根据节点当前已完成的同步序列号计算出节点本次应收到的需要进行同步的同步序列号。如果同步消息携带的同步序列号范围超过了本次应同步的序列号,表明已经发生了同步信息丢失。当监测到同步信息丢失时,同步代理构造同步信息丢失消息,将节点当前同步序列号记录在同步信息丢失消息中,发送给同步主控。在步骤5中,如果同步主控收到同步信息丢失消息,便将同步信息队列当前同步序列号调整至同步信息丢失消息中指定的节点当前同步序列号,这样,在进行下一次同步时,会接着从该位置进行信息同步。通过这种方法,保证了信息同步的可靠性。
本发明的优点在于实现了多个节点数据同步的方法,并且采用简单的序列号检测机制增强了同步可靠性,克服了以往同步方法二者不能兼顾的问题。
附图说明
图1是本发明应用的场景和实现本发明的功能分布图;
图2是本发明同步的流程图;
图3为同步信息队列和同步消息示意图;
图4为同步代理进行同步序列号检测示意图以及同步主控根据同步信息丢失消息调整同步信息队列同步位置示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述:
图1是本发明实施的环境示意图。整个***由主节点和其它节点构成,各节点通过以太网链接,当有数据需要从主节点同步到其它接点时,由主节点通过以太网将需要同步的信息发送给其它节点,主节点可以将信息同步给单个节点,也可以同步给多个节点,当进行单个节点同步时,采用单播通信,当进行多节点同步时,采用多播通信。001为整个同步过程的同步主控,驻留在主节点上,同步信息从主节点同步到其它节点。同步主控完成同步流程控制和同步信息构造和发送。002为同步代理,驻留在非主节点的其它节点上。同步代理接收来自主节点的同步消息,完成数据到本节点的同步。
这种环境多出现在前后台数据同步、路由器设备路由同步和其它具有一点到多点信息同步的场合。
图2是本发明方法流程图。同步主控和同步代理分别驻留在主节点和其它节点上,并各自独立的运行。101为***启动时向同步主控发出的启动消息,同步主控收到启动消息后进入201步骤。在没有统一启动控制的***中,没有启动消息,同步主控启动后直接进入201步骤。
201步骤为同步主控初始化过程,预先分配同步信息队列,用来记录同步数据位置和对应的同步序列号,同时保存维护同步信息队列的同步状态信息。同步信息队列有添加同步信息、获取同步信息、调整当前同步位置等操作。
102为同步定时消息。同步过程需要通过以太网传输信息,而以太网作为公共资源,也为其它网络应用服务,因此同步不能独占网络资源。为了控制同步过程中的数据流量,采取定时同步的方法,当有数据需要同步时,设定一同步定时器,周期性的通知同步主控进行同步。当定时器到时时,同步主控执行202过程。
202过程是同步主控进行同步消息构造和发送。同步主控从同步信息队列中获得需要的同步信息,将同步信息加入到同步消息携带的数据中,直到数据容纳不下一个同步信息。为提高同步效率和合理利用网络资源,同步消息所携带的数据大小通过计算得到,使得传送同步消息的IP报文长度等于网络接口的MTU值。这样发送出去的报文不会进行分片,并又充分利用了本次传输所能携带的数据。同步主控在构造同步消息时,将同步消息携带的同步信息起始同步序列号和结束同步序列号记录到同步消息头中。同步主控将构造好的同步消息发送给其它节点。如果信息没有同步完,则同步主控等待102所示的下一个周期的同步定时到。
当同步代理收到同步消息后,进行301所示的检查。同步代理将本节点记录的完成同步的序列号与消息头中的起始序列号与结束序列号进行检查,如果检测出同步信息丢失,则向同步主控返回同步信息丢失反馈消息,消息内容携带本节点同步完成的序列号。如果没有发生同步信息丢失,则直接进入302步骤。
302步骤为同步消息携带的同步信息处理。同步代理将同步信息从同步消息数据中逐个取出,根据同步信息类型分别进行处理,完成该信息的同步。
在图2中,当同步主控收到同步信息丢失反馈消息后,执行203步骤。步骤203完成当前同步位置的调整操作。同步主控根据同步信息丢失反馈消息中携带的节点同步状态,将将要进行同步的位置进行适当调整,等待102所示的同步定时消息,然后进行202所示的信息同步。这样,同步主控在进行下一个周期同步时,会将丢失了的信息重新进行同步,增强了同步的可靠性。
图3示出了同步信息队列结构和同步消息的结构。图中401是同步信息队列,它是一缓冲数组结构,每一个元素记录了对应的同步信息的地址信息以及对应的序列号。序列号是4字节无符号整型数,按照加1的方式进行递增。同步信息队列可以进行同步信息添加、同步信息获取、调整同步位置等操作。往同步信息队列中添加同步信息时,队列尾元素记录了存储同步信息的内存地址,对应的序列号在已分配的序列号基础上加1。
在进行同步时,从同步信息队列中当前同步位置获得同步信息,图3中402所示为指向当前同步位置的指针。当从当前同步位置获得同步信息后,当前同步位置将指向下一个同步队列元素。
图3中404为同步消息,它包含两部分内容:同步消息头和同步消息数据。405示出了同步消息头的详细结构,406示出了同步消息数据详细结构。同步消息头包含了起始序列号和结束序列号以及同步信息个数等内容。如图3所示,同步消息携带了从序列号k到序列号k+n的同步信息,这样,起始序列号为k,结束序列号为k+n,同步信息个数为n+1。同步消息数据中包含了从序列号k到k+n对应的n+1个同步信息。图3中403为构造完该同步消息后当前同步指针所在的位置。
图4是同步代理进行同步序列号检测和同步主控进行同步位置调整的示意图。图中500为同步代理进行序列号检测的部分,600为同步主控进行同步位置调整的部分。
图4中502表示同步代理收到的同步消息中指出的起始序列号位置,504表示结束序列号位置。同步代理将节点已经完成同步的序列号加1得到下一个应当同步的序列号,当节点应当同步的序列号在同步消息携带的序列号范围之内时,如图中503所示的位置,那么可以判断没有发生同步信息丢失。当节点应当同步的序列号在如图中505所示的位置,既同步消息携带的信息已经被同步,也没有发生信息丢失。当节点应当同步的序列号在如图中501所示的位置,既同步的信息没有进行从501到502之间(不包括502)的信息同步,而直接从502进行同步,表明501到502之间(不包括502)的信息在同步的过程中丢掉了,那么同步代理将向同步主控返回同步信息丢失消息,并将节点当前501所示的同步位置告诉给同步主控。
图4中600所示为同步主控同步位置调整,图中示出了两种情形。
情形1,601为同步主控上同步信息队列头对应的序列号,604为队列尾对应的序列号,603为当前同步位置。同步主控收到的同步信息丢失消息中指出的节点同步序列号为602所示位置,在这种情况下,节点要求从602所示位置的序列号开始进行同步,此时602所示序列号为有效的序列号范围内,既602序列号所代表的同步信息可用,那么,同步主控将把当前的同步位置从603处调整至602处。
情形2,701为同步主控上同步信息队列头对应的序列号,704为队列尾对应的序列号,703为当前同步位置。同步主控收到的同步信息丢失消息中指出的节点同步序列号为702所示位置,在这种情况下,节点要求从702所示位置的序列号开始进行同步,此时702所示序列号已不再有效的序列号范围内,既702序列号所代表的同步信息已经不可用,这种情况发生在该信息已被新的信息覆盖掉,那么,同步主控已不能将当前的同步位置调整到702位置,而只能讲同步位置调整到队列头701处,尽量同步丢失的数据。如果发生这种情况,将无法做到信息的完全同步。
在实际的应用中,对时常发生变化的信息同步,往往可以同时进行两种同步方式,一种是变化同步,另一种是整体同步。变化同步将信息变化及时进行同步,采用本发明提供的方法,可以做到较为可靠的同步。当变化同步发生了图4情形2所示的情况时,可以在整体同步时加以弥补。整体同步是将整个信息进行同步,通过本发明的方法可以做到可靠同步。
Claims (8)
1.一种实现多节点间信息同步的方法,其特征在于,所述方法包括以下步骤:
步骤1,在主节点上开辟同步信息队列,用于缓存需要同步的信息;
步骤2,当有信息需要同步时,将同步信息加入到同步信息队列;
步骤3,同步主控从同步信息队列当前同步位置进行信息同步,将同步信息以单播或组播的方式发送给其它节点;
步骤4,同步代理接收到同步消息后,分析同步消息中携带的同步序列号信息,判断出同步过程是否发生同步消息丢失,一旦检测到同步消息发生丢失,立即向同步主控反馈同步节点同步状态;
步骤5,同步主控收到同步代理同步消息丢失的反馈后,根据反馈的同步状态,调整当前同步位置。
2.如权利要求1所述的方法,其特征在于,所述步骤1中,所有其它同步节点共享同步信息队列。
3.如权利要求1或2所述的方法,其特征在于,所述步骤2中,在将同步信息缓存到同步信息队列中时,同时分配同步信息对应的序列号。
4.如权利要求1所述的方法,其特征在于,所述步骤3中,优先采取同步消息携带的数据大小由网络传输最大单元MTU计算确定的方法,使得发送的同步消息不被分片,并且充分利用本次同步消息所能同步信息数量的能力。
5.如权利要求1或4所述的方法,其特征在于,所述步骤3中,同步消息除了携带同步信息之外,还携带同步信息对应的起始序列号和结束序列号信息。
6.如权利要求1或4所述的方法,其特征在于,所述步骤3中,同步消息可以通过单播或组播的方式法送给其它同步节点;对于点对点同步,则以单播形式发送;
如果要同步到多点,则以组播形式发送,同步消息发送速率不受同步节点多少影响。
7.如权利要求5所述的方法,其特征在于,所述步骤4中,根据同步消息携带的起始序列号和结束序列号信息,结合节点当前同步序列号位置,检测出同步是否发生丢失情况,当发生同步信息丢失,向主节点反馈同步信息丢失消息。
8.如权利要求1所述的方法,其特征在于,所述步骤5中,主节点根据同步信息丢失消息中携带的节点同步状态信息,对当前同步位置进行调整,使得丢失的同步信息可以重新得到同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100911010A CN100512094C (zh) | 2004-11-17 | 2004-11-17 | 一种实现多节点间信息同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100911010A CN100512094C (zh) | 2004-11-17 | 2004-11-17 | 一种实现多节点间信息同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1780201A true CN1780201A (zh) | 2006-05-31 |
CN100512094C CN100512094C (zh) | 2009-07-08 |
Family
ID=36770334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100911010A Active CN100512094C (zh) | 2004-11-17 | 2004-11-17 | 一种实现多节点间信息同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100512094C (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559104A (zh) * | 2013-11-07 | 2014-02-05 | 南京国电南自轨道交通工程有限公司 | 一种基于混合通信的分布式冗余实时数据库框架 |
CN103595768A (zh) * | 2013-10-28 | 2014-02-19 | 国家电网公司 | 一种实现虚拟化设备间配置同步的方法 |
CN104811658A (zh) * | 2014-12-26 | 2015-07-29 | 山东巨洋神州信息技术有限公司 | 基于光纤分布式显示***的影像智能同步方法 |
CN104954175A (zh) * | 2015-05-26 | 2015-09-30 | 上海摩软通讯技术有限公司 | 组网方法及***和多播方法及*** |
CN106713176A (zh) * | 2016-12-12 | 2017-05-24 | 全球能源互联网研究院 | 控制平面时间同步队列的服务速率控制方法和装置 |
CN107566481A (zh) * | 2017-08-30 | 2018-01-09 | 长沙曙通信息科技有限公司 | 一种远程数据复制控制信息传输实现方法 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和*** |
CN109165229A (zh) * | 2018-08-23 | 2019-01-08 | 北京京东金融科技控股有限公司 | 本地区块同步的检验方法、装置、设备及存储介质 |
CN109194720A (zh) * | 2018-08-15 | 2019-01-11 | 京信通信***(中国)有限公司 | 主备机数据同步方法、装置和计算机设备 |
CN109218247A (zh) * | 2018-11-27 | 2019-01-15 | 威胜信息技术股份有限公司 | 基于新型同步序列的定时同步方法 |
CN110032478A (zh) * | 2018-01-11 | 2019-07-19 | 中兴通讯股份有限公司 | 一种主备中心数据实时同步方法、装置、***及存储介质 |
-
2004
- 2004-11-17 CN CNB2004100911010A patent/CN100512094C/zh active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595768A (zh) * | 2013-10-28 | 2014-02-19 | 国家电网公司 | 一种实现虚拟化设备间配置同步的方法 |
CN103595768B (zh) * | 2013-10-28 | 2016-05-25 | 国家电网公司 | 一种实现虚拟化设备间配置同步的方法 |
CN103559104B (zh) * | 2013-11-07 | 2016-06-22 | 南京国电南自轨道交通工程有限公司 | 一种基于混合通信的分布式冗余实时数据库框架 |
CN103559104A (zh) * | 2013-11-07 | 2014-02-05 | 南京国电南自轨道交通工程有限公司 | 一种基于混合通信的分布式冗余实时数据库框架 |
CN104811658A (zh) * | 2014-12-26 | 2015-07-29 | 山东巨洋神州信息技术有限公司 | 基于光纤分布式显示***的影像智能同步方法 |
CN104811658B (zh) * | 2014-12-26 | 2017-12-26 | 山东巨洋神州信息技术有限公司 | 基于光纤分布式显示***的影像智能同步方法 |
CN104954175B (zh) * | 2015-05-26 | 2018-05-08 | 上海摩软通讯技术有限公司 | 多播方法及*** |
CN104954175A (zh) * | 2015-05-26 | 2015-09-30 | 上海摩软通讯技术有限公司 | 组网方法及***和多播方法及*** |
CN106713176A (zh) * | 2016-12-12 | 2017-05-24 | 全球能源互联网研究院 | 控制平面时间同步队列的服务速率控制方法和装置 |
CN106713176B (zh) * | 2016-12-12 | 2020-04-17 | 全球能源互联网研究院有限公司 | 控制平面时间同步队列的服务速率控制方法和装置 |
CN107566481A (zh) * | 2017-08-30 | 2018-01-09 | 长沙曙通信息科技有限公司 | 一种远程数据复制控制信息传输实现方法 |
CN107566481B (zh) * | 2017-08-30 | 2020-11-24 | 北京珞安科技有限责任公司 | 一种远程数据复制控制信息传输实现方法 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和*** |
CN110032478A (zh) * | 2018-01-11 | 2019-07-19 | 中兴通讯股份有限公司 | 一种主备中心数据实时同步方法、装置、***及存储介质 |
CN109194720A (zh) * | 2018-08-15 | 2019-01-11 | 京信通信***(中国)有限公司 | 主备机数据同步方法、装置和计算机设备 |
CN109165229A (zh) * | 2018-08-23 | 2019-01-08 | 北京京东金融科技控股有限公司 | 本地区块同步的检验方法、装置、设备及存储介质 |
CN109165229B (zh) * | 2018-08-23 | 2020-06-05 | 京东数字科技控股有限公司 | 本地区块同步的检验方法、装置、设备及存储介质 |
CN109218247A (zh) * | 2018-11-27 | 2019-01-15 | 威胜信息技术股份有限公司 | 基于新型同步序列的定时同步方法 |
CN109218247B (zh) * | 2018-11-27 | 2020-11-24 | 威胜信息技术股份有限公司 | 基于新型同步序列的定时同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100512094C (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8140700B2 (en) | Reliable delivery of multi-cast conferencing data | |
US7630305B2 (en) | TCP selective acknowledgements for communicating delivered and missed data packets | |
JP3882187B2 (ja) | フロー制御システムおよび方法 | |
US5974496A (en) | System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card | |
AU2008310218B2 (en) | Load balancing and admission scheduling in pull-based parallel video servers | |
Tomlinson | Selecting sequence numbers | |
CN100512094C (zh) | 一种实现多节点间信息同步的方法 | |
US20050074007A1 (en) | Transaction boundary detection for reduction in timeout penalties | |
Ehley et al. | Evaluation of multimedia synchronization techniques | |
US20030115350A1 (en) | System and method for efficient handling of network data | |
MXPA06006330A (es) | Sistema de transferencia de datos sincronizado. | |
CN101127702A (zh) | 用于平面结构网络的多对多可靠组播错误恢复方法 | |
US7269752B2 (en) | Dynamically controlling power consumption within a network node | |
CN111787349B (zh) | 一种数据缓存方法、装置、设备及介质 | |
EP1570369A2 (en) | An apparatus and method for receive transport protocol termination | |
US20090142055A1 (en) | Control device and a method for controlling an optical data transmission, and a shared storage network system | |
CN1250997A (zh) | 网络间传输数据的方法 | |
CN1665219A (zh) | 组播流量控制管理***及方法 | |
CN109862297B (zh) | 窗口调整方法、装置及可读存储介质 | |
US7561523B1 (en) | Method and apparatus for flow control in a reliable multicast communication system | |
JP2007006068A (ja) | 高速ネットワークにおけるパケットの同期送受信方法、送受信システム、送受信装置および同期送受信プログラム | |
KR20070092392A (ko) | 멀티캐스트 방식의 분산 서버 제어 방법 및 그 시스템 | |
Huang et al. | Quantification of quality-of-presentations (QOPs) for multimedia synchronization schemes | |
Yao et al. | Message logging optimization for wireless networks | |
US20050050018A1 (en) | Data structure supporting session timer and variable aging function including self adjustable 2MSL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |