一种分布式系统中的数据同步方法及装置制造方法及图纸

技术编号:3870644 阅读:152 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分布式系统中的数据同步方法及装置,所述方法包括以下处理步骤:(1)源CPU和目的CPU采用相同的逻辑分组对本地数据进行分组,并以同一ID标识同一数据组;(2)目的CPU对本地数据组计算校验码,将数据组ID及其对应的校验码发送给源CPU;(3)源CPU根据目的CPU发送来的数据组ID,获取本地的相同数据组ID对应的校验码,并与目的CPU发送来的该数据组ID的校验码进行比较,如果不同,向目的CPU同步该数据组。所述装置包括设置在源CPU上的第一分组模块和第一同步模块,以及设置在目的CPU上的第二分组模块和第二同步模块。本发明专利技术有效地提高了分布式系统中数据同步的性能和可靠性。

【技术实现步骤摘要】

本专利技术涉及计算机网络通讯领域,尤其涉及一种分布式系统中的数据同步方法及装置
技术介绍
分布式系统中,多个CPU协同进行工作,但是每个CPU都只能访问自己的内存空间,物理空间上并不存在全局意义上的数据供不同的CPU共享,如果各个CPU的数据不一致,将直接导致任务结果不可预期,因此可靠而快速的数据同步机制是分布式系统中的各个CPU协同工作的首要条件。在目前的数据同步机制中,因为同步等待方式的开销较大,效率较低,一般都采用发送异步消息的方式进行数据同步,绝大多数系统釆用的是如下两种异步消息数据同步1. 定时全局同步定时由源CPU向目的CPU发送异步消息,将所有数据全部重新同步一次,不管目前的数据是否已经处于同步了,可以避免因为异步消息丢失造成的数据不同步问题。2. 即时数据同步源CPU数据发生了变化,需要进行同步,主动向目的CPU发送异步消息,异步消息只发送修改的数据,数据同步的延时极短并且开销也比较小。然而,以上两种方法各自存在无法避免的问题定时全局同步虽然可靠性高,但是系统开销非常大,对CPU的处理能力和CPU间的带宽都提出了较高的要求,并且由于系统资源耗费大,定时同步的时间间隔一般也设置得比较长,造成全局数据的同步时延也会同步增大。即时数据同步的开销小、时延短,但是无法保证数据的完全同步,一旦系统比较繁忙,就有可能造成消息丟失,数据不同步,并且随着系统运行时间的推移,这种不同步的问题会越来越严重。
技术实现思路
本专利技术提供了 一种分布式系统中数据同步的方法及装置,能够在保证数据同步的可靠性的同时,提高数据同步的效率。为了解决上述技术问题,本专利技术采用了如下技术方案一种分布式系统中的数据同步方法,包含以下处理步骤(1) 源CPU和目的CPU采用相同的逻辑分组对本地数据进行分组,并以同一 ID标识同 一翁:据组;(2) 目的CPU对本地数据组计算校验码,将数据组ID及其对应的校验码发送给源CPU;(3 )源CPU根据目的CPU发送来的数据组ID,获取本地的相同数据组ID对应的校验码,并与目的CPU发送来的该数据组ID的校验码进行比较,如果不同,向目的CPU同步该组凝:据。在上述数据同步方法的一种实施例中,还包括处理以下处理步骤源CPU集中计算本地数据组的校验码。在上述数据同步方法的一种实施例中,源CPU在系统空闲期对本地数据组校验码进行集中计算。在上述数据同步方法的一种实施例中,源CPU如果在本地数据组校验码的集中计算期间收到目的CPU发送来的数据组ID及其对应的校验码,则优先查找或计算目的CPU发送来的数据组ID的本地校验码。在上述数据同步方法的一种实施例中,所述数据组ID唯一确定一种校验码算法。在上述数据同步方法的一种实施例中,采用查找预置的对应关系表的方式确定数据组ID对应的校验码算法。在上述数据同步方法的一种实施例中, 一个翁:据-陂分组在至少一个同步组中。在上述数据同步方法的一种实施例中,所述逻辑分组基于模块和校验码算法两者中至少 一种进行划分。在上述数据同步方法的一种实施例中,目的CPU定时遍历本地数据组ID并计算各个数据组对应的校验码。本专利技术还公开了 一种分布式系统中的数据同步装置,包括设置在源CPU上的第一分组模块和第一同步模块,以及设置在目的CPU上的第二分组模块和第二同步模块,其中第 一分组模块和第二分组模块,采用相同的逻辑分组对本地数据进行分组,并以同一 ID标识同 一邀:据组;第二同步模块,对本地数据组计算校验码,将数据组ID及其对应的校验码发送给源CPU;第一同步模块,根据目的CPU发送来的数据组ID,获取本地的相同数据组ID对应的校验码,并与目的CPU发送来的该数据组ID的校验码进行比较,如果不同,向目的CPU同步该数据组。与现有技术相比,本专利技术的有益效果在于本专利技术首先在同步前对源CPU和目的CPU采用相同的逻辑分组进行数据分組,并对相同的数据组采用同一 ID进行标识。而后在同步时,由目的CPU主动上报需要同步的数据组ID及其对应的校验码,源CPU查找本地相同的数据组ID并进行校验码的比对,根据比对结果决定是否进行数据同步。如此, 一方面,通过校验码比对而进行数据同步,使得数据同步的可靠性得到保证;另一方面,由于目的CPU上报的仅是数据组ID及其对应的校验码,而源CPU只对校验码不匹配的数据组进行同步,不仅提高了数据同步的效率,同时减少了 CPU资源和带宽的浪费。此外,目的CPU的主动上报也将减少源CPU和目的CPU之间的通讯次数,/人而进一步减少CPU资源和带宽的浪费。附图说明图1示例性的描述了本专利技术的数据同步流程;图2示例性的描述了本专利技术的数据组的逻辑分组及数据组ID和校验算法的对应关系。具体实施例方式下面结合附图对本专利技术的具体实施方式进行详细说明如图l所示,图中示例性的描述了本专利技术的数据同步流程,在本文中,6将一个分布式系统中进行数据同步的两个CPU区分为源CPU和目的CPU,图1仅示出了一个源CPU和一个目的CPU,可以理解,数据同步同样可以在一个源CPU和多个目的CPU之间进行,源CPU和目的CPU的数量对本专利技术的数据同步方法并无限制。在本专利技术的一个实施例中,数据同步按如下处理步骤进行1、 源CPU和目的CPU采用相同的逻辑分组对本地数据进行分组,并以同一 ID标识同 一数据组;2、 目的CPU对本地数据组计算校验码,将同步组ID及其对应的校验码发送给源CPU;3、 源CPU根据目的CPU发送来的同步组ID,获取本地的相同同步组ID对应的校验码,并与目的CPU发送来的该同步组ID的校验码进行比较,如果不同,向目的CPU同步该组数据。在上述步骤l中,数据同步前,首先进行数据的逻辑分组,数据分组分别在源CPU和目的CPU进行,将源CPU上的数据称为源CPU的本地数据,相应的,目的CPU上的数据称为目的CPU的本地数据。为保证之后的数据同步的正确性,源CPU和目的CPU应当采用相同的逻辑分组对本地数据进行分组,并对同样的数据组用同样的ID进行标识,即数据组ID是一个全局标识,适用于整个分布式系统中, 一个数据组ID,在分布式系统中的各个CPU标识的都是同样的数据组。如图2所示,在逻辑分组时, 一个数据可以分组在一个数据组中,也可以分组在多个凄t据组中。如图2所示,数据组ID唯一的确定一种校验码算法,校验码算法可以是系统默认的,也可以是自定义的,例如可以是校验和、MD5、奇偶校验等算法。数据组ID与校验码算法的对应关系根据预置的对应关系表获取。在图2的示例中, 一个数据被分组在多个数据组中,由于不同数据组分别计算各自的校验码,从而可以提高校验码计算的可靠性;特别的,不同的数据组可以采用不同的校验算法,使得同 一个数据可以参与到多种校验算法中,这样可以降低不同的数据组却得到相同校验码的几率,降低系统误判的几率,而校验码计算的可靠性的提高,将相应提高数据同步的可靠性。逻辑分组基于^f莫块和校验码算法两者中至少一种进行划分。按模块划分是指将一个^^莫块的数据作为一个逻辑分组,有多少个才莫块就划分为多少组,每组使用一个校验算法,分配一个ID。按照校验算法划分是指同一个模块数据使用不同的校验算法分组到不同的逻辑分组中,分配不同的ID。在实际应用中,为了简单和提高性能,可以选本文档来自技高网...

【技术保护点】
一种分布式系统中的数据同步方法,其特征在于,包含以下处理步骤: (1)源CPU和目的CPU采用相同的逻辑分组对本地数据进行分组,并以同一ID标识同一数据组; (2)目的CPU对本地数据组计算校验码,将数据组ID及其对应的校验码发 送给源CPU; (3)源CPU根据目的CPU发送来的数据组ID,获取本地的相同数据组ID对应的校验码,并与目的CPU发送来的该数据组ID的校验码进行比较,如果不同,向目的CPU同步该组数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:郁聪
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1