分布式系统单板间的数据同步方法

文档序号:7664120阅读:178来源:国知局
专利名称:分布式系统单板间的数据同步方法
技术领域
本发明涉及通信领域,更具体地涉及一种分布式系统单^反间的 数据同步方法。
背景技术
多凝:核心网i殳备由主4空才反和各种业务一反组成,构成一个分布式 系统,单板之间通过发送消息的方式进行通信。
为了保证系统中的共享数据在各单板间保持一致,第 200410070619.6号中国专利采耳又传递数据变化信息的方法,即当单 板上的共享数据发生变化时,该单板将数据的变化信息传递给其他 单板,以实现凄t据的同步。
这种方法的缺点是可靠性差。假如单一反上的数据发生失步,该 单板的共享数据将在与其他单板不同的基准上进行变化,从而造成 共享数据失去一致性。导致数据失步的原因主要有两个 一方面, 单板间的通信带宽有限,数据拥塞的时候出现丢包,严重时会导致 数据失步(例如,当单板上电初始化时,需要传输大量数据,这时 发生链^各拥塞就极易导致失步的发生);另一方面,程序数据处理的 逻辑有错误、内存写操作越界、緩存溢出等情况也会使单板上的数 据副本被破坏,这也会引起同步数据的失步。核心网设备对可靠性 要求很高,单纯使用传输数据变化信息的方法来进行同步,严重影 响了系统的稳定性。
另外,现有技术在处理数据并发沖突方面存在局限性。即,当 两个单板上的同 一共享数据同时发生变化时,如何保持数据同步的 正确性。例如,曱单板上的数据发生A变化,乙单板上的同一数据
同时发生B变化,甲将变化A发送给乙,乙将变化B发送给曱,最 终等同于甲上的数据在经过A变化后进行了 B变化,乙上的数据在 经过B变化后进行了 A变化,假如A、 B这两种变化对先后次序敏 感,则曱乙两块单板将出现失步。

发明内容
鉴于以上所述的一个或多个问题,本发明才是供了 一种分布式系 统单才反间的凄t据同步方法。
才艮据本发明实施例的分布式系统单斥反间的lt据同步方法,包4舌 以下步骤S102,在系统单板上的共享数据发生变化时,系统单板 形成变化区域的数据快照,并在数据快照上添加其自身的版本信息; S104,系统单板将添加了版本信息的数据快照发送至不同于其自身 的其他系统单板;以及S106,其他系统单板利用添加了版本信息的 数据快照更新自身单板上的数据副本,以保持与所述系统单板之间 的数据同步。
其中,步骤S102包括以下步骤在系统单板上的共享数据发 生变化时,系统单板形成变化区域的数据快照;系统单板将其自身 的版本信息添加在凄t据快照中,并将添加了版本信息的数据快照分 成多个数据包;以及系统单板将各数据包依次链接在其自身的同步 链表上。
其中,在系统单板是受控单板的情况下,步骤S104包括以下 步骤受控单板将添加了版本信息的数据快照发送至主控单板;主 控单板根据版本信息判断是否接受添加了版本信息的数据快照;以
及如果主控单板接受添加了版本信息的数据快照,则利用添加了版 本信息的数据快照更新自身单板上的数据副本,并将添加了版本信 息的数据快照发送至不同于受控单板的其他系统单板,否则主控单 板将添加了版本信息的数据快照丟弃。
其中,受控单板通过滑窗流控的方式,将添加了版本信息的数 据快照发送至主控单板。版本信息是由形成数据快照时的时间加上 一个递增量形成的。
其中,主控单板根据添加了版本信息的数据快照中的第一个数 据包中携带的版本信息判断是否接受添加了版本信息的数据快照。 进一步地,主控单板根据第 一个数据包中携带的版本信息中的时间 信息判断添加了版本信息的数据快照是否是最新的,如果是,则接 受,否则丢弃。其中,第一个数据包中携带的版本信息中的时间信 息与主控单板上原有的共享数据的版本信息中的时间信息相同,则 利用第 一个数据包中携带的版本信息中的递增量判断添加了版本信 息的数据快照是否是最新的,如果第 一个数据包中携带的版本信息 中的递增量大于主控单板上原有的共享凄t据的版本信息中的递增 量,则判断添加了版本信息的数据快照是最新的,否则不是。
其中,主控单板优先将添加了版本信息的数据快照发送至其他 系统单板中的版本落后的系统单板。其他系统单板利用其自身的数 据链表接收添加了版本信息的数据快照,并在其自身单板上的数据 副本完成更新后,释放其自身的数据链表。
本发明解决了同步数据的失步的问题,提高了系统的稳定性。


此处所说明的附图用来^是供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并
不构成对本发明的不当限定。在附图中
图1是根据本发明实施例的分布式系统单板间的数据同步方法 的流程图2是应用根据本发明实施例的分布式系统单板间的数据同步 方法的系统的才医架图3是根据本发明实施例的变化后的数据在板间进行同步的示 意图4是才艮据本发明实施例的滑窗示意图5是根据本发明实施例的运用了滑窗控制的数据包进行板间 传送的示意图;以及
图6是根据本发明实施例的出现丢包的情况下的数据包板间传 送的示意图。
具体实施例方式
下面参考附图,详细说明本发明的具体实施方式

参考图1,说明根据本发明实施例的分布式系统单板间的数据 同步方法。其中,分布式系统中包含一块主控单板,此主控单板上 运行有中心控制程序,下面称之为Global,还包含若干块其他单板, 这些单板上运行有数据同步的节点程序,以后称之为Local。其中,
每块单板上都拥有一个数据副本,该数据副本是共享数据的緩存区, 本发明的目的就是要保证各数据副本的实时一致。
如图1所示,才艮据本发明实施例的数据同步方法包括以下步骤
S102,初始化各单板上的数据副本、版本号、以及同步链表。 当单板上的共享数据发生变化时,形成变化区域的数据快照,并在 凄t据快照上添加W反本号。
S104,如果共享数据的变化发生在Local上,则该Local将数据 快照发送给Global,如果共享数据的变化发生在Global上,则Global
根据版本号裁定此数据快照是否可以接受。如果可以接受,则用此 数据快照更新自己的数据副本,并将数据快照同步到其他所有的单 板上,如果不可接受,则向共享数据发生变化的单板发送拒绝消息。
S106,其它Local接受此数据快照,并用此数据快照更新自身 单板上的数据副本。如果此数据快照被裁定不可接受,则在系统中, 此数据快照的所有数据都被丟弃。其中,当同步完成后,各单板将 自己的同步《连表资源释i文。
其中,在步骤S102中,形成变化区域的数据快照,并将数据快 照分割成若干个数据包,依次链接在同步链表上。其中,每个数据 包都包含该数据快照的版本信息。版本信息是由形成lt据快照时的 全局系统时间加上一个递增量形成的。
其中,在步骤S104中,Local将同步链表中的数据包依次发送 给Global,发送的方式采耳又滑窗流控的方式进4于发送。所谓滑窗流 控的发送方式,即A向B发送数据包,在发送的同时,A接受B 返回给A的响应消息,B并不是每个包都要回复响应消息,而是采 耳又延时响应,每隔一革殳时间发送一次响应消息,响应消息中包含最 后收到的数据包的序号。当这个响应消息发送出去之后,我们说该
序号以前包含该序号的教:据包都^皮B确i人了 。如果A长时间没有收 到响应或者收到了重复的响应,贝'j A认为链路可能发生丢包,则从 最后一个被B确认了的数据包开始进行数据包的重发。如果B接受 到错误的包、乱序的包,则会发送重复响应,提示A对数据包进行 重发。A在发送包的时候不是一次性发完,而是发送到一个特定的 数据包为止,这个数据包和最后一个被B确认过的数据包之间相隔 一个窗口的^争度。
其中,在步骤S104中,Global通过收到的第一个包中携带的版 本信息判断该快照是不是全局最新的版本。判断的方法是首先, 检查版本信息中的时间信息是不是最新的,如果是最新的,则认为 版本是最新的。如果版本信息中的时间信息和原有版本的时间信息 相同,则再比專交递增量,递增量大则i^为;f反本是新的;否则^人为片反 本不是新的。如果版本是最新的,则Global接受Local发送过来的 全部快照数据,并将快照数据以数据包链表的形式存放在同步链表 里,并将这些数据包转发给其他所有Local (转发的过程也采用滑窗 流控的发送方式)。在对其他所有Local发送数据包的时候,Global 通过分析各Local上数据的版本,寻找版本落后的Local优先进行 同步。
其中,在步骤S106中,Local接受此数据快照的数据包,并存 储在同步链表中,当接受完全后,Local用此数据快照更新自己的数 据副本。
下面参考图2至图6,更详细地说明本发明的具体实施方式

图2是应用根据本发明实施例的数据同步方法的系统的框架图。 如图2所示,该系统包括主控单寺反(此单一反上运4亍有中心控制程序, 称之为Global)和若干其他单板(这些单板上运4亍有数据同步的节 点程序,称之为Local )。其中,每块单^反上都拥有一个I史据副本,
该数据副本是共享数据的緩存区,本发明的目的就是要保证各数据 副本的实时一致。
图3是根据本发明实施例的变化后的数据在板间进行同步的示 意图。其中,G代表运行有Global的单板,Ll和L2分別是两块运 行有Local的单板。假设初始时这三块单板上的区域3的版本号都 是100。如图3所示,凝:据同步的步艰《如下
S302, Ll单板上的用户程序对共享数据区域3进行了写操作, L1上的Local对区域3进行快照,并根据系统的全局时间形成版本 号,,i"i殳为120。
S304, Ll上的Local将数据快照拆分为若干数据包,保存于同 步链表下,并将l欠据包发送纟会Global。
S306, Global收到第一个凄t据包时,4艮据片反本号进行裁定,因 为片反本号120新于纟反本号100,所以这个快照是可以一皮4妾受的,于 是Global接受其余的数据包,将他们组织成凄t据快照,并用其更新 自己数据副本中的区域3,并通知给用户程序凄史据副本发生+多改。
S308, Global将同步链表里的数据包传递给其他的Local ( L2 上的Local ), L2接受完所有的数据包,然后组织成数据快照,并更 新自己数据副本中的区域3,并通知用户程序数据副本发生变化。 最后,各单板释放同步链表。
图4是根据本发明实施例的滑窗示意图。其中,有9个数据包 (序号为0到8)被挂在了同步链表下。该滑窗的尺寸为5,其中, 0、 1两个数据包是已发送且已被确认过的,2号数据包是滑窗的顶 部,2、 3两个数据包已被发出但还未被确认,4、 5、 6三个数据包 是可以发送但还未及时发送的数据包,6号数据包是滑窗的底部,7、 8两个数据包是不允许发送的数据包。
图5是根据本发明实施例的运用了滑窗控制的数据包进行板间
传送的示意图。其中,假设是Global向Local发送数据包,其过程 可以^L如下分解
S502, Global发出了 0号凄t据包,此时滑窗顶部位于0号l欠据 包,Local接受到0号数据包后,启动了 ACK_TIME定时器。
S504, Global继续发包,依次发到了2号数据包,Local接受。
S506, Local上的ACK—TIME ^皮触发,向Global发送响应,确 认2号数据包。
S508, Global接收到响应后滑窗向下移动,顶部移至3号数据 包;并继续发送包,发至6号tt据包时触及滑窗的底部,等待Local 的响应消息。
S510, Local上的ACK—TIME再次出发,向Global发送响应, 确i人5号lt一居包。Global纟妄收到响应后滑窗向下移动,顶部移至6 号^:据包,并继续发包。
图6是根据本发明实施例的出现丢包的情况下的数据包板间传 送的示意图。其中,假设Global向Local发包,2号数据包在发送 时出现丢包,那么Local在接收到之后的3、 4、 5号数据包时都认 为是收到了乱序包,于是Local会回复重复响应,Global在接收到 重复响应后对2号数据包进行重发。
综上所述,针对凄t据失步问题,本发明通过对共享数据进行数 据快照,并将数据快照同步到各单板上,消除了数据失步。另外, 本发明通过将共享数据划分为不同的区域,每次只对发生变化的区 域进行快照,从而提高了效率。而且,本发明还为数据加上了版本 号(版本号包含时间信息及一个递增量),版本号用于界定数据的新
旧;根据各单板上数据的版本号分布,优先为版本落后的单板进行 数据同步,从而提高了同步效率;同时,本发明通过比较版本号的 先后也很好地解决了共享数据的并发沖突问题。最后,在板间通信 方面,本发明采取滑窗流控技术,避免了通信链路的拥塞影响系统 的稳定性。
与现有技术相比,本发明大大提高了数据同步的可靠性,同时 通过滑窗控制提高了数据传输的效率。另外,由于本发明采取了版 本号策略,使得数据同步更加稳定更加实时。
以上所述^又为本发明的实施例而已,并不用于限制本发明,对 于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均 应包含在本发明的权利要求范围之内。
权利要求
1.一种分布式系统单板间的数据同步方法,其特征在于,包括以下步骤S102,在系统单板上的共享数据发生变化时,所述系统单板形成变化区域的数据快照,并在所述数据快照上添加所述系统单板的版本信息;S104,所述系统单板将添加了版本信息的数据快照发送至不同于所述系统单板的其他系统单板;以及S106,所述其他系统单板利用所述添加了版本信息的数据快照更新自身单板上的数据副本,以保持与所述系统单板之间的数据同步。
2. 根据权利要求1所述的数据同步方法,其特征在于,所述步骤 S102包4舌以下步-骤在所述系统单板上的所述共享数据发生变化时,所述系统 单才反形成所述变化区域的所述数据快照;所述系统单板将其自身的版本信息添加在所述数据快照 中,并将所述添加了版本信息的数据快照分成多个数据包;以 及所述系统单板将各所述数据包依次链接在所述系统单板 的同步链表上。
3. 根据权利要求2所述的数据同步方法,其特征在于,在所述系 统单才反是受控单一反的情况下,所述步骤S104包4舌以下步H所述受控单板将所述添加了版本信息的数据快照发送至 主控单板;所述主控单板一艮据所述版本信息判断是否4妾受所述添加 了版本信息的数据快照;以及如果所述主控单板^接受所述添加了版本信息的数据快照, 则利用所述添加了版本信息的数据快照更新自身单板上的数 据副本,并将所述添加了版本信息的数据快照发送至不同于所 述受控单板的所述其他系统单一反,否则所述主控单板将所述添 加了版本信息的数据快照丢弃。
4. 根据权利要求3所述的数据同步方法,其特征在于,所述受控 单板通过滑窗流控的方式,将所述添加了版本信息的数据快照 发送至所述主控单斗反。
5. 根据权利要求4所述的数据同步方法,其特征在于,所述版本 信息是由形成所述数据快照时的时间加上一个递增量形成的。
6. 根据权利要求5所述的数据同步方法,其特征在于,所述主控 单板才艮据所述添加了版本信息的数据快照中的第 一个所述数 据包中携带的版本信息判断是否接受所述添加了版本信息的 凌t据快照。
7. 根据权利要求6所述的数据同步方法,其特征在于,所述主控 单板根据第 一个所述数据包中携带的所述版本信息中的时间 信息判断所述添加了版本信息的数据快照是否是最新的,如果 是,则接受,否则丢弃。
8. 根据权利要求7所述的数据同步方法,其特征在于,如果第一 个所述数据包中携带的所述版本信息中的所述时间信息与所 述主控单板上原有的共享数据的版本信息中的时间信息相同, 则利用第 一个所述数据包中携带的所述版本信息中的递增量 判断所述添加了版本信息的数据快照是否是最新的,如果第一 个所述数据包中携带的所述版本信息中的所述递增量大于所 述主控单板上原有的共享数据的版本信息中的递增量,则判断 所述添加了版本信息的数据快照是最新的,否则不是。
9. 根据权利要求8所述的数据同步方法,其特征在于,所述主控 单板优先将所述添加了版本信息的凄t据快照发送至所述其他 系统单板中的片反本落后的系统单板。
10. 根据上述权利要求中任一项所述的数据同步方法,其特征在 于,所述其他系统单板利用其自身的lt据链表4妄收所述添加了 版本信息的^t据快照,并在其自身单板上的数据副本完成更新 后,释放其自身的数据链表。
全文摘要
本发明公开了一种分布式系统单板间的数据同步方法,包括以下步骤S102,在系统单板上的共享数据发生变化时,系统单板形成变化区域的数据快照,并在数据快照上添加其自身的版本信息;S104,系统单板将添加了版本信息的数据快照发送至不同于其自身的其他系统单板;以及S106,其他系统单板利用添加了版本信息的数据快照更新自身单板上的数据副本,以保持与所述系统单板之间的数据同步。本发明解决了同步数据的失步的问题,提高了系统的稳定性。
文档编号H04L7/00GK101197657SQ200710170349
公开日2008年6月11日 申请日期2007年11月12日 优先权日2007年11月12日
发明者飞 何, 冯仕锦, 宋大猛, 姚 王, 斌 甘, 阎文博 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1