CN104572921A - 一种跨数据中心的数据同步方法和装置 - Google Patents
一种跨数据中心的数据同步方法和装置 Download PDFInfo
- Publication number
- CN104572921A CN104572921A CN201410836037.8A CN201410836037A CN104572921A CN 104572921 A CN104572921 A CN 104572921A CN 201410836037 A CN201410836037 A CN 201410836037A CN 104572921 A CN104572921 A CN 104572921A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- value pair
- data center
- testing result
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明实施例提供了一种跨数据中心的数据同步方法和装置,其中的方法具体包括:收集待同步数据中心的键值对数据;以及利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。本发明实施例能够减少对各数据中心的访问次数,从而能够减轻对各数据中心的线上访问压力,并且既能够提高跨数据中心的数据同步效率,又能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
Description
技术领域
本发明涉及分布式存储技术领域,特别是涉及一种跨数据中心的数据同步方法和装置。
背景技术
随着的互联网时代已经到来,遍布全世界的互联网用户每天都进行多种多样的交互,随时都在制造各种各样的数据,这些数据的数量是单机时代数据量的数倍。为存储这些数据,各互联网公司在世界各地建立了庞大的IDC(互联网数据中心,Internet Data Center),单个数据中心的主机数量在几百至数万的数量级不等。
为了实现数据中心故障时数据中心之间的无缝对接,跨数据中心的数据同步变得尤为重要。
现有跨数据中心的数据同步方案通常由各数据中心基于数据中心之间的相互访问来完成。例如,A数据中心侧的数据同步过程具体包括:A数据中心首先依据key值查询B数据中心以得到B数据中心所存储key值对应的第一value值,然后,A数据中心将自身存储key值对应的第二value值与上述第一value值进行比较,若不一致则对key值对应的第二value值进行修复。B数据中心侧的数据同步过程与A数据中心侧的数据同步过程,也需要查询A数据中心以得到A数据中心所存储key值对应的value值。
可以看出,现有跨数据中心的数据同步方案需要频繁访问数据中心的线上服务。例如,在待同步数据中心的数目为2时,A数据中心和B数据中心需要互相访问;又如,在待同步数据中心的数目为3时,A数据中心、B数据中心和C数据中心也需要互相访问,也即,A数据中心、B数据中心和C数据中心分别需要被另外的数据中心访问,也即,需要向两个数据中心提供线上服务。可见,在待同步的数据中心的数目较多时,大大增加了数据中心的线上访问压力。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种跨数据中心的数据同步方法和装置。
依据本发明的一个方面,提供了一种跨数据中心的数据同步方法,包括:
收集待同步数据中心的键值对数据;以及
利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
可选地,所述方法还包括:
利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
可选地,所述利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复的步骤,包括:
将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;
在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
可选地,所述在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复的步骤,包括:
在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。
可选地,所述利用各数据库中心的客户端进行不一致的检测结果的修复的步骤,包括:
针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;
利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
可选地,所述不一致的检测结果对应键值对数据存储于数据库文件中,则所述将所述不一致的检测结果对应键值对数据划分为多份子键值对数据的步骤具体为,将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
可选地,所述利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果的步骤,包括:
在映射阶段,利用所述分布式计算框架的计算节点从输入的所述待同步数据中心的键值对数据中抽取键值对,将每个键值对作为参数传递给映射函数,经过映射函数处理后将产生的中间结果写入本地磁盘中;以及
在化简阶段,利用所述分布式计算框架的计算节点根据所述中间结果的位置从磁盘中读取所述中间结果,对所述中间结果进行排序,并针对排序后中间结果中每个唯一的键,将其键值对传递给化简函数,经过化简函数处理后产生检测结果;其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。
依据本发明的另一方面,提供了一种跨数据中心的数据同步装置,包括:
收集模块,用于收集待同步数据中心的键值对数据;以及
检测模块,用于利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
可选地,所述装置还包括:
修复模块,用于利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
可选地,所述修复模块,包括:
划分子模块,用于将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;以及
并行修复子模块,用于在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
根据本发明实施例的一种跨数据中心的数据同步方法和装置,可以收集待同步数据中心的键值对数据,并利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;由于仅仅需要分别对各数据中心进行一次访问,即可完成待同步数据中心的键值对数据的收集,因此,相对于现有方案,本发明实施例能够减少对各数据中心的访问次数,从而能够减轻对各数据中心的线上访问压力;
并且,相对于现有方案通常由各数据中心在自身机器上进行键值对数据的一致性检测,本发明实施例利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,能够发挥分布式计算框架扩容能力强、高效率和高可靠性的优势,既能够提高跨数据中心的数据同步效率,又能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种跨数据中心的数据同步方法的步骤流程示意图;
图2示出了根据本发明一个实施例的一种跨数据中心的数据同步方法的步骤流程示意图;
图3示出了根据本发明一个示例的一种跨数据中心的数据同步方法的步骤流程示意图;
图4示出了根据本发明一个实施例的一种跨数据中心的数据同步装置的结构示意图;以及
图5示出了根据本发明一个实施例的一种跨数据中心的数据同步装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的跨数据中心的数据同步方法的步骤流程示意图,具体可以包括如下步骤:
步骤101、收集待同步数据中心的键值对数据;
步骤102、利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
本发明实施例可以应用于各种分布式存储系统中,用于进行分布式存储系统中跨数据中心的数据同步,其中,所述数据中心可以为IDC或者机房等等,本发明实施例对具体的数据中心不加以限制。
相对于现有方案通常由各数据中心基于数据中心之间的相互访问来完成,本发明实施例可以由不同于各数据中心的装置来完成跨数据中心的数据同步,具体地,上述装置可以收集待同步数据中心的key-value(键值对)数据,并利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;由于仅仅需要分别对各数据中心进行一次访问,即可完成待同步数据中心的键值对数据的收集,因此,相对于现有方案,本发明实施例能够减少对各数据中心的访问次数,从而能够减轻对各数据中心的线上访问压力。
在本发明的一种可选实施例中,可以通过读取各数据中心的日志来收集待同步数据中心的键值对数据,其中,所述日志中会记录有日期信息及该日期信息对应的所有数据库插入记录的键值对数据,因此,可以按照日期信息灵活地收集待同步中心的键值对数据;例如,如果跨数据中心的数据同步周期是24小时,那么仅收集最近24小时内产生的所有数据库插入记录的键值对数据即可。
由于待同步数据中心的键值对数据为某段时期内所有数据库插入记录的键值对数据,其数据量非常庞大,例如,可以达到TB(太字节)甚至PB(拍字节)的数量级。现有方案通常由各数据中心在自身机器上进行键值对数据的一致性检测,往往需要花费大量的时间,且需要占用各数据中心的计算资源,容易影响各数据中心的性能。而本发明实施例利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,能够发挥分布式计算框架扩容能力强、高效率和高可靠性的优势,既能够提高跨数据中心的数据同步效率,又能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
在本发明的一种应用示例中,可以将收集的待同步数据中心的键值对数据输入至分布式计算框架,由分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果,其中,分布式计算框架主要可以通过比较各数据中心的同一键对应的值来完成一致性检测。
在实际应用中,所述分布式计算框架具体可以包括:Hadoop、HBase等。以Hadoop为例,其可以通过MapReduce(映射化简)框架进行任务的批处理,这样,其任务的流程可以分为Map阶段和Reduce阶段。在任务提交时,Map阶段是读取对应的输入数据,然后从输入数据中抽取键值对,将每个键值对作为参数传递给Map(映射)函数,经过Map函数处理后将产生的中间结果写入本地磁盘中;然后在Reduce阶段,根据中间结果的位置将中间结果从磁盘中读取,然后对它们进行排序,使得相同键的键值对聚集在一起,然后针对排序后中间结果中每个唯一的键,将其键值对传递给Reduce(化简)函数,然后经过reduce处理后产生检测结果,其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。在本发明的一种应用示例中,可以将不一致的检测结果输出至输出文件,所述输出文件可以为数据库文件,如该数据库文件可以为*.date文件等等。
综上,本发明实施例具有如下优点:
本发明实施例可以收集待同步数据中心的键值对数据,并利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;由于仅仅需要分别对各数据中心进行一次访问,即可完成待同步数据中心的键值对数据的收集,因此,相对于现有方案,本发明实施例能够减少对各数据中心的访问次数,从而能够减轻对各数据中心的线上访问压力;
并且,相对于现有方案通常由各数据中心在自身机器上进行键值对数据的一致性检测,本发明实施例利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,能够发挥分布式计算框架扩容能力强、高效率和高可靠性的优势,既能够提高跨数据中心的数据同步效率,又能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
参照图2,示出了根据本发明一个实施例的跨数据中心的数据同步方法的步骤流程示意图,具体可以包括如下步骤:
步骤201、收集待同步数据中心的键值对数据;
步骤202、利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;
步骤203、利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
相对于图1所示实施例,本实施例在得到一致或不一致的检测结果后,还可以利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复;相对于现有方案通常由各数据中心在自身机器上进行不一致的检测结果对应键值对数据的修复,本实施例仅需在非数据中心自身机器上利用各数据库中心的客户端完成修复,因此,能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
在本发明的一种可选实施例中,所述利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复的步骤203,具体可以包括:
子步骤S231、将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;
在具体实现中,所述不一致的检测结果对应键值对数据可以存储于数据库文件中,则所述将所述不一致的检测结果对应键值对数据划分为多份子键值对数据的步骤具体可以为,将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
子步骤S232、在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
由于本可选实施例能够在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复,也即能够实现多份子键值对数据的并行修复,因此能够提高修复效率。
在本发明的另一种可选实施例中,所述在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复的步骤子步骤S232,可以进一步包括:在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。由于每个数据中心的客户端均需要单独的进程来运行,故本优选实施例可以在每台机器上启动多进程来运行所有数据中心的客户端,其中,进程的数目可以数据中心的数目相同。
在本发明的再一种可选实施例中,所述利用各数据库中心的客户端进行不一致的检测结果的修复的步骤203,具体可以包括:
子步骤S2031、针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;
子步骤S2032、利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
例如,对于相同的key,A数据中心上其对应的value=1,B数据中心上其对应的value=2,因此步骤202得到了不一致的检测结果,那么,在执行步骤203的过程中,如果A数据中心为主数据中心,那么,可以发送一个命令给B数据中心,该命令用于指示B数据中心设置value=1。
为使本领域技术人员更好地理解本发明,参照图3,示出了根据本发明一个示例的跨数据中心的数据同步方法的步骤流程示意图,具体可以包括如下步骤:
步骤301、从各待同步数据中心的日志中读取键值对数据,并将所读取的键值对数据输入至Hadoop;
步骤302、Hadoop进行所述键值对数据的一致性检测,得到一致或不一致的检测结果,并将所述一致或不一致的检测结果输出至数据库文件;
步骤303、将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据;
步骤304、将所述多个子数据库文件分配给数目相应的多台机器;
步骤305、在每台机器上启动进程来运行所有数据库中心的客户端,并利用各数据库中心的客户端进行所述多份子键值对数据的修复;
其中,所述步骤305具体可以包括:
子步骤351、针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;以及
子步骤352、利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了根据本发明一个实施例的一种跨数据中心的数据同步装置的结构示意图,具体可以包括如下模块:
收集模块401,用于收集待同步数据中心的键值对数据;以及
检测模块402,用于利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
在本发明的一种可选实施例中,所述检测模块402,可以进一步包括:
映射子模块,用于在映射阶段,所述分布式计算框架的计算节点从输入的所述待同步数据中心的键值对数据中抽取键值对,将每个键值对作为参数传递给映射函数,经过映射函数处理后将产生的中间结果写入本地磁盘中;以及
化简子模块,用于在化简阶段,所述分布式计算框架的计算节点根据所述中间结果的位置从磁盘中读取所述中间结果,对所述中间结果进行排序,并针对排序后中间结果中每个唯一的键,将其键值对传递给化简函数,经过化简函数处理后产生检测结果;其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。
综上,本发明实施例收集待同步数据中心的键值对数据,并利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;由于仅仅需要分别对各数据中心进行一次访问,即可完成待同步数据中心的键值对数据的收集,因此,相对于现有方案,本发明实施例能够减少对各数据中心的访问次数,从而能够减轻对各数据中心的线上访问压力;
并且,相对于现有方案通常由各数据中心在自身机器上进行键值对数据的一致性检测,本发明实施例的跨数据中心的数据同步装置可以为独立于各数据中心之前的装置,该数据同步装置可以利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,能够发挥分布式计算框架扩容能力强、高效率和高可靠性的优势,既能够提高跨数据中心的数据同步效率,又能够避免占用各数据中心的计算资源,从而避免影响到各数据中心的性能。
参照图5,示出了根据本发明一个实施例的一种跨数据中心的数据同步装置的结构示意图,具体可以包括如下模块:
收集模块501,用于收集待同步数据中心的键值对数据;
检测模块502,用于利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果;以及
修复模块503,用于利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
在本发明的一种可选实施例中,所述修复模块503,具体可以包括:
划分子模块,用于将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;以及
并行修复子模块,用于在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
在具体实现中,所述不一致的检测结果对应键值对数据可以存储于数据库文件中,则所述划分子模块,可具体用于将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
在本发明的另一种可选实施例中,所述并行修复子模块,可具体用于在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。
在本发明的再一种可选实施例中,所述修复模块503,具体可以包括:
获取子模块,用于针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;以及
发送子模块,用于利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的跨数据中心的数据同步方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种跨数据中心的数据同步方法,包括:
收集待同步数据中心的键值对数据;以及
利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
A2、如A1所述的方法,所述方法还包括:
利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
A3、如A2所述的方法,所述利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复的步骤,包括:
将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;
在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
A4、如A3所述的方法,所述在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复的步骤,包括:
在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。
A5、如A2所述的方法,所述利用各数据库中心的客户端进行不一致的检测结果的修复的步骤,包括:
针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;
利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
A6、如A3所述的方法,所述不一致的检测结果对应键值对数据存储于数据库文件中,则所述将所述不一致的检测结果对应键值对数据划分为多份子键值对数据的步骤具体为,将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
A7、如A1所述的方法,所述利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果的步骤,包括:
在映射阶段,利用所述分布式计算框架的计算节点从输入的所述待同步数据中心的键值对数据中抽取键值对,将每个键值对作为参数传递给映射函数,经过映射函数处理后将产生的中间结果写入本地磁盘中;以及
在化简阶段,利用所述分布式计算框架的计算节点根据所述中间结果的位置从磁盘中读取所述中间结果,对所述中间结果进行排序,并针对排序后中间结果中每个唯一的键,将其键值对传递给化简函数,经过化简函数处理后产生检测结果;其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。
B8、一种跨数据中心的数据同步装置,包括:
收集模块,用于收集待同步数据中心的键值对数据;以及
检测模块,用于利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
B9、如B8所述的装置,所述装置还包括:
修复模块,用于利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
B10、如B9所述的装置,所述修复模块,包括:
划分子模块,用于将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;以及
并行修复子模块,用于在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
B11、如B10所述的装置,所述并行修复子模块,具体用于在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。
B12、如B9所述的装置,所述修复模块,包括:
获取子模块,用于针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;以及
发送子模块,用于利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
B13、如B10所述的装置,所述不一致的检测结果对应键值对数据存储于数据库文件中,则所述划分子模块,具体用于将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
B14、如B10所述的装置,所述检测模块,包括:
映射子模块,用于在映射阶段,所述分布式计算框架的计算节点从输入的所述待同步数据中心的键值对数据中抽取键值对,将每个键值对作为参数传递给映射函数,经过映射函数处理后将产生的中间结果写入本地磁盘中;以及
化简子模块,用于在化简阶段,所述分布式计算框架的计算节点根据所述中间结果的位置从磁盘中读取所述中间结果,对所述中间结果进行排序,并针对排序后中间结果中每个唯一的键,将其键值对传递给化简函数,经过化简函数处理后产生检测结果;其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。
Claims (10)
1.一种跨数据中心的数据同步方法,包括:
收集待同步数据中心的键值对数据;以及
利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
3.如权利要求2所述的方法,其特征在于,所述利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复的步骤,包括:
将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;
在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
4.如权利要求3所述的方法,其特征在于,所述在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复的步骤,包括:
在每台机器上启动进程来运行所有数据中心的客户端,并利用所有数据中心的客户端进行所述每份子键值对数据的修复。
5.如权利要求2所述的方法,其特征在于,所述利用各数据库中心的客户端进行不一致的检测结果的修复的步骤,包括:
针对不一致的检测结果,获取其对应待修复键及对应主数据中心的值;
利用从数据中心的客户端向对应从数据中心发送命令;其中,所述命令用于指示所述从数据中心将所述不一致键对应的值设置为所述主数据中心的值。
6.如权利要求3所述的方法,其特征在于,所述不一致的检测结果对应键值对数据存储于数据库文件中,则所述将所述不一致的检测结果对应键值对数据划分为多份子键值对数据的步骤具体为,将所述数据库文件分割为多个子数据库文件,其中,每份子数据库文件中存储有对应的子键值对数据。
7.如权利要求1所述的方法,其特征在于,所述利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果的步骤,包括:
在映射阶段,利用所述分布式计算框架的计算节点从输入的所述待同步数据中心的键值对数据中抽取键值对,将每个键值对作为参数传递给映射函数,经过映射函数处理后将产生的中间结果写入本地磁盘中;以及
在化简阶段,利用所述分布式计算框架的计算节点根据所述中间结果的位置从磁盘中读取所述中间结果,对所述中间结果进行排序,并针对排序后中间结果中每个唯一的键,将其键值对传递给化简函数,经过化简函数处理后产生检测结果;其中,所述化简函数的处理过程包括:对每个唯一的键对应的多个值进行比较,若相同则得到一致的检测结果,若不同则得到不一致的检测结果。
8.一种跨数据中心的数据同步装置,包括:
收集模块,用于收集待同步数据中心的键值对数据;以及
检测模块,用于利用分布式计算框架进行所述待同步数据中心的键值对数据的一致性检测,得到一致或不一致的检测结果。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
修复模块,用于利用各数据库中心的客户端进行不一致的检测结果对应键值对数据的修复。
10.如权利要求9所述的装置,其特征在于,所述修复模块,包括:
划分子模块,用于将所述不一致的检测结果对应键值对数据划分为多份子键值对数据;以及
并行修复子模块,用于在多台机器上利用各数据库中心的客户端进行所述多份子键值对数据的修复;其中,所述机器的数量等于所述子键值对数据的份数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836037.8A CN104572921B (zh) | 2014-12-27 | 2014-12-27 | 一种跨数据中心的数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836037.8A CN104572921B (zh) | 2014-12-27 | 2014-12-27 | 一种跨数据中心的数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572921A true CN104572921A (zh) | 2015-04-29 |
CN104572921B CN104572921B (zh) | 2017-12-19 |
Family
ID=53088983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836037.8A Active CN104572921B (zh) | 2014-12-27 | 2014-12-27 | 一种跨数据中心的数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572921B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341084A (zh) * | 2017-05-16 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法及装置 |
CN107679210A (zh) * | 2017-10-17 | 2018-02-09 | 山东浪潮通软信息科技有限公司 | 一种报表数据交换方法、装置及系统 |
WO2021168654A1 (zh) * | 2020-02-25 | 2021-09-02 | 深圳市欢太科技有限公司 | 检测同步数据的方法、装置、服务器以及数据同步系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193716A1 (en) * | 2003-03-31 | 2004-09-30 | Mcconnell Daniel Raymond | Client distribution through selective address resolution protocol reply |
CN102314336A (zh) * | 2010-07-05 | 2012-01-11 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法和系统 |
CN103023879A (zh) * | 2012-11-26 | 2013-04-03 | 国电南瑞科技股份有限公司 | 一种基于高速缓存的数据中心间广域数据同步方法 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN104239301A (zh) * | 2013-06-06 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 一种数据比对方法和装置 |
-
2014
- 2014-12-27 CN CN201410836037.8A patent/CN104572921B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193716A1 (en) * | 2003-03-31 | 2004-09-30 | Mcconnell Daniel Raymond | Client distribution through selective address resolution protocol reply |
CN102314336A (zh) * | 2010-07-05 | 2012-01-11 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法和系统 |
CN103023879A (zh) * | 2012-11-26 | 2013-04-03 | 国电南瑞科技股份有限公司 | 一种基于高速缓存的数据中心间广域数据同步方法 |
CN104239301A (zh) * | 2013-06-06 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 一种数据比对方法和装置 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341084A (zh) * | 2017-05-16 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法及装置 |
CN107679210A (zh) * | 2017-10-17 | 2018-02-09 | 山东浪潮通软信息科技有限公司 | 一种报表数据交换方法、装置及系统 |
WO2021168654A1 (zh) * | 2020-02-25 | 2021-09-02 | 深圳市欢太科技有限公司 | 检测同步数据的方法、装置、服务器以及数据同步系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104572921B (zh) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577427B (zh) | 用于区块链系统的数据迁移方法、设备和存储介质 | |
CN107958057B (zh) | 一种用于异构数据库中数据迁移的代码生成方法及装置 | |
Woodring et al. | In‐situ Sampling of a Large‐Scale Particle Simulation for Interactive Visualization and Analysis | |
GB2475161A (en) | Incremental implementation of undo/redo support in legacy applications | |
CN103838626A (zh) | 一种处理串行任务的数据处理装置及方法 | |
CN109740122A (zh) | 思维导图用例文件的转换方法及装置 | |
JP2014078085A (ja) | 実行制御プログラム、実行制御方法および情報処理装置 | |
US20200142696A1 (en) | Sort and merge instruction for a general-purpose processor | |
US20210096876A1 (en) | Saving and restoring machine state between multiple executions of an instruction | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN109871290A (zh) | 应用于Java的调用堆栈追踪方法、装置和存储介质 | |
CN109344268A (zh) | 图形数据库写入的方法、电子设备及计算机可读存储介质 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
Akhtar | Big Data Architect’s Handbook: A guide to building proficiency in tools and systems used by leading big data experts | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN109885535A (zh) | 一种文件存储的方法及相关装置 | |
CN104572921A (zh) | 一种跨数据中心的数据同步方法和装置 | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
CN110019205A (zh) | 一种数据存储、还原方法、装置及计算机设备 | |
US20050114836A1 (en) | Block box testing in multi-tier application environments | |
CN110399309A (zh) | 一种测试数据生成方法及装置 | |
CN108958973A (zh) | 分布式文件系统纠删码数据重构存储节点选择方法及装置 | |
CN105389394A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
CN110221778A (zh) | 酒店数据的处理方法、系统、存储介质以及电子设备 | |
AU2021268828B2 (en) | Secure data replication in distributed data storage environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220729 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |