CN105763587A - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN105763587A CN105763587A CN201410790983.3A CN201410790983A CN105763587A CN 105763587 A CN105763587 A CN 105763587A CN 201410790983 A CN201410790983 A CN 201410790983A CN 105763587 A CN105763587 A CN 105763587A
- Authority
- CN
- China
- Prior art keywords
- data center
- primary data
- newly requested
- synchronization request
- unit
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法,所述方法包括:主数据中心获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;所述主数据中心解析所述两个以上的更新请求,得到解析结果;所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;所述主数据中心将所述同步请求发送给备数据中心。本发明同时还公开了一种数据同步装置。
Description
技术领域
本发明涉及存储技术,尤其涉及一种数据同步方法及装置。
背景技术
随着云计算时代的到来,越来越多的用户数据存储在云存储系统中。云存储系统为应用或用户提供数据存储池,保证应用或用户能随时随地访问到所需的数据。云存储系统一般都支持跨节点的数据冗余,在使用廉价不可靠存储设备时仍保证用户数据的正确性和可访问性;云存储系统中的节点或磁盘或网络的失效对用户透明,保证系统正常对用户提供服务。
一般的云存储系统可以支持单个数据中心内机架或节点级别的数据冗余,这样,在整个机架或数个节点掉电时云存储系统仍能对外正常提供服务。为了进一步提高云存储系统可用性,少数云存储系统实现了多数据中心级别的容灾,每个数据中心有相对独立的供电系统和网络,数据中心之间通过高速网络连接,即使在某个数据中心整体掉电时,仍然能由其他数据中心对外正常提供服务。
在多数据中心系统中,数据对象需要在多个数据中心之间同步,确保在某个数据中心挂掉后,该对象仍能通过其他数据中心访问到。由于单个数据中心内存储对象数量众多,用户可能有对不同或同一对象的大量的创建、更改或删除操作,因此需要在多数据中心之间同步的对象操作次数众多,多数据中心之间对象的同步方法非常重要。
在一些系统中通常采用的同步方法是:将主数据中心的同步请求操作以及更新数据都记录到日志中,然后将每个操作及数据的更新日志都同步到其他数据中心。这种同步方法在大规模存储系统的更新操作较多的情况下,多数据中心之间的同步开销会占用大量的网络带宽,影响外部用户的正常访问。特别是当在应用有对同一对象的多次更新需求时,例如更新对象信息、更新对象元数据以及访问权限等操作时,该对象的多次更新数据被频繁记录到日志存放到本地磁盘、然后频繁在数据中心之间的网络间发送。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种数据同步方法及装置,能够在多数据中心之间对象同步时减少开销。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种数据同步方法,所述方法包括:
主数据中心获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述主数据中心解析所述两个以上的更新请求,得到解析结果;
所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述主数据中心将所述同步请求发送给备数据中心。
第二方面,本发明实施例提供一种数据同步装置,所述装置包括第一获取单元、解析单元、合并单元和第一发送单元,其中:
所述第一获取单元,用于获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述解析单元,用于解析所述两个以上的更新请求,得到解析结果;
所述合并单元,用于根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述第一发送单元,用于将所述同步请求发送给备数据中心。
本发明实施例提供的数据同步方法及装置,其中,主数据中心获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;所述主数据中心解析所述两个以上的更新请求,得到解析结果;所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;所述主数据中心将所述同步请求发送给备数据中心,如此,能够在多数据中心之间对象同步时减少开销。
附图说明
图1-1为相关技术中主数据中心和备数据中心的关系示意图;
图1-2为本发明实施例一数据同步方法的实现流程示意图;
图2为本发明实施例二数据同步方法的实现流程示意图;
图3为本发明实施例三数据同步方法的实现流程示意图;
图4为本发明实施例五数据同步装置的组成结构示意图;
图5为本发明实施例六数据同步装置的组成结构示意图;
图6为本发明实施例七数据同步装置的组成结构示意图。
具体实施方式
本发明的以下实施例中,将涉及主用数据中心和备用数据中心之间对存储对象的同步过程,其中主用数据中心在以下简称为主数据中心,而备用数据中心在以下简称为备数据中心,对于存储对象将简称为对象,本发明实施例中的对象为广义上的对象,广义上的对象一般包括用户信息、桶、Accessid等信息,其中在对象存储系统中桶又被称为容器,Accessid信息可以用于生成用户访问签名的信息,换句话说,Accessid信息可以作为用户的认证信息,本发明以下实施例提供的方法尤其可以用于对象存储系统领域。下面两个数据中心为例,来说明本发明实施例提供的数据同步方法,如图1-1所示,假设有两个数据中心AZ1和AZ2;其中:
数据中心AZ1是对象O1和对象O2的主数据中心(主AZ),即数据中心AZ1能处理外界应用或用户对对象O1和对象O2的读出、写入等更新操作访问,需要说明的是,对象O1和对象O2实际上可以称为更新操作的操作对象;
数据中心AZ2是对象O1和对象O2的备份数据中心(备AZ),即数据中心AZ2只能处理外界应用或用户对对象O1和对象O2的读操作访问;
当主数据中心AZ1中有对对象O1和对象O2的更新时,对象更新会由数据中心AZ1更新到数据中心AZ2;当主数据中心AZ1中,该对象O1和/或对象O2的副本全部丢失时,应用或对象可以从数据中心AZ2中获取对象O1和/或对象O2。
需要说明的是,虽然图1-1中仅列出一个备用数据中心,本领域的技术人员应该理解的是,可以具有两个以上数据中心作为数据中心AZ1的备用数据中心,例如,还可以包括一个数据中心AZ3,其中同数据中心AZ2一样,数据中心AZ3同样为数据中心AZ1的备用数据中心。换句话说,数据中心AZ3只能处理外界应用或用户对对象O1和对象O2的读操作访问;
当主数据中心AZ1中有对象O1和对象O2的更新时,对象更新会由数据中心AZ1更新到数据中心AZ3;当主数据中心AZ1中,该对象O1和/或对象O2的副本全部丢失时,应用或对象可以从数据中心AZ3中获取对象O1和/或对象O2。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
实施例一
本发明实施例提供一种数据同步方法,应用于主数据中心,在具体实现的过程中,所述主数据中心可以采用存储设备集群来实现。图1-2为本发明实施例一数据同步方法的实现流程示意图,如图1-2所示,该方法包括:
步骤101,主数据中心获取两个以上的更新请求;
这里,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;其中,所述两个以上的更新请求包括两个更新请求、三个更新请求、四个更新请求、五个更新请求等等。
这里,更新是指用户或外部应用对主数据中心的操作,而本发明实施例中所涉及的另一概念“同步”是指主数据中心与备数据中心之间操作。所述主数据中心获取两个以上的更新请求,包括:所述主数据中心在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。例如,主数据中心在t11时刻同时从外部获取到两个以上的更新请求;或者,主数据中心在t11时刻获取一个更新请求,在t12、t13、t14和t15时刻分别获取两个以上的更新请求。
这里,所述两个以上的更新请求可以是对同一个数据对象的不同操作,也可以是对不同数据对象的不同的更新操作,所述更新操作包括创建、修改和删除,其中,使用两种标识方法分别标识同一个更新操作是否进行合并,其中NOSYNC_*用于表示没有合并前的更新请求中所涉及的更新操作,其中*用来代表更新操作的关键字如修改(MOD);SYNCING_*用于表示已经做过合并的、并由主AZ已发给备AZ的同步请求中所涉及的更新操作(此时还未收到备AZ的响应、或响应出错)。下面以修改操作为例进行说明,SYNCING_MOD为主AZ已发给备AZ但还未收到响应,或响应出错的同步请求中所涉及的修改操作;而NOSYNC_MOD为主AZ获取到的更新请求中所涉及的修改操作。
在本发明实施例中涉及的更新请求包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容;其中所述更新操作的关键字包括创建、修改和删除;其中,操作对象即为数据中心的存储对象,例如上述实施例中所提到的对象O1和对象O2。
这里,在具体实现的过程中,所述主数据中心获取两个以上的更新请求,可以为:主数据中心接收来自外部应用的两个以上的更新请求。
步骤102,所述主数据中心解析所述两个以上的更新请求,得到解析结果;
这里,所述解析结果可以包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
步骤103,所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
步骤104,所述主数据中心将所述同步请求发送给备数据中心。
这里,备数据中心在收到主数据中心发送的同步请求后,备数据中心解析所述同步请求,然后根据解析后的结果对备数据中心内对象进行更新,更新完成后向主数据中心发送同步响应,所述同步响应可以用于向主数据中心表明更新成功或更新失败。然后主数据中心根据接收到的同步响应对同步请求进行相应的操作,如删除同步请求。
本发明实施例中,主数据中心获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;所述主数据中心解析所述两个以上的更新请求,得到解析结果;所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;所述主数据中心将所述同步请求发送给备数据中心,如此,能够在多数据中心之间对象同步时减少开销。
在同步请求发送给备数据中心之前,对同一对象的不同操作进行合并,再将合并后的请求发给备数据中心处理,大大了减少主备数据中心之间的网络传输带宽、以及备数据中心需要执行的操作次数进而减少磁盘读写次数。
实施例二
基于前述的实施例一,本发明实施例提供一种数据同步方法,应用于主数据中心,在具体实现的过程中,所述主数据中心可以采用一台计算设备或一台以上的计算设备以及相应的存储设备来实现。图2为本发明实施例二数据同步方法的实现流程示意图,如图2所示,该方法包括:
步骤201,主数据中心获取两个以上的更新请求;
这里,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
这里,所述主数据中心获取两个以上的更新请求,包括:所述主数据中心在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。例如,主数据中心在t11时刻同时从外部获取到两个以上的更新请求;或者,主数据中心在t11时刻获取一个更新请求,在t12、t13、t14和t15时刻分别获取两个以上的更新请求。
本发明实施例所涉及的更新请求包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容;其中所述更新操作的关键字包括创建、修改和删除;其中,操作对象即为数据中心的存储对象。
这里,在具体实现的过程中,所述主数据中心获取两个以上的更新请求,可以为:主数据中心接收来自外部应用的两个以上的更新请求。
步骤202,所述主数据中心解析所述两个以上的更新请求,得到解析结果;
这里,所述解析结果可以包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
步骤203,所述主数据中心根据所述解析结果对所述主数据中心内所存储的对象进行更新操作;
步骤204,所述主数据中心根据解析结果,将所述两个以上的更新请求写入同步任务表中;
步骤205,所述主数据中心在所述同步任务表中,根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
这里,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到一个或两个以上的同步请求。合并后形成一个同步请求时,该同步请求包括所述两个以上的更新请求所关联的所有对象的更新操作。在具体实现过程中,可能会由于数据量的限制,需要形成两个以上的同步请求,作为优选的实施例,所形成的多个同步请求中的每一个同步请求可以是针对一个对象的更新操作。
步骤206,所述主数据中心将所述同步请求写入同步任务表中,并删除被所述同步请求所合并掉的所述两个以上的更新请求;
这里,假设有三个更新请求UD11、UD12和UD13,其中UD11是针对第一对象和第二对象的更新操作,而UD12是针对第二对象的更新操作,UD13是针对第一对象的更新操作,那么合并之后,可以形成一个或两个同步请求。当合并之后形成一个同步请求UD15时,该同步请求UD15是针对第一对象和第二对象的同步请求;当合并之后形成两个同步请求UD16和UD17时,其中同步请求UD16是针对第一对象的同步请求,同步请求UD17是针对第二对象的同步请求。在形成同步请求(UD15)或(UD16和UD17)后,可以从同步任务表中将更新请求UD11、UD12和UD13删除掉。
本发明实施例中,可以在将同步请求发送给备数据中心之前将更新请求从同步任务表中删除,也可以在收到同步成功的同步响应之后,对应地将更新请求删除。需要说明的是,同步成功的同步响应,可以是在同步请求内所有的操作对象都完成之后,统一发送一个同步响应;也可以在完成一个操作对象后,分别针对每一操作对象发送一个同步响应。
步骤207,所述主数据中心将所述同步请求发送给备数据中心。
这里,备数据中心在收到主数据中心发送的同步请求后,备数据中心解析所述同步请求,然后根据解析后的结果对备数据中心内对象进行更新,更新完成后向主数据中心发送同步响应,所述同步响应可以用于向主数据中心表明更新成功或更新失败。然后主数据中心根据接收到的同步响应对同步任务表中的同步请求进行相应的操作,如删除同步请求,在删除同步请求时可以从同步任务表中查找出同步请求所对对应的同步请求,然后将该同步请求进行删除。
本发明实施例中,该方法还包括:所述主数据中心接收所述备数据中心的发送的同步响应;当所述同步响应表明所述备数据中心更新对象成功时,所述主数据中心从所述同步任务表中将与所述同步响应相关联的同步请求删除。
本发明实施例中,该方法还包括:在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,所述主数据中心再次向所述备数据中心发送与所述同步响应相关联的同步请求。
实施例三
基于前述的实施例,本发明实施例提供一种数据同步方法,应用于主数据中心,在具体实现的过程中,所述主数据中心可以采用一台计算设备或一台以上的计算设备以及相应的存储设备来实现。图3为本发明实施例三数据同步方法的实现流程示意图,如图3所示,该方法包括:
步骤301,主数据中心获取两个以上的更新请求;
这里,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
步骤302,所述主数据中心解析所述两个以上的更新请求,得到解析结果;
这里,所述解析结果可以包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
步骤303,所述主数据中心以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述两个以上的更新请求记录写入同步任务表中;
这里,所述同步任务表中以更新操作的操作对象的关键字为主关键字,以所述更新操作的关键字为列名,以所述更新操作的时间戳为列值。
步骤304,所述主数据中心在所述同步任务表中,根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
步骤305,所述主数据中心以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述同步请求写入同步任务表中,并删除被所述同步请求所合并掉的所述两个以上的更新请求;
步骤306,所述主数据中心将所述同步请求发送给备数据中心。
这里,备数据中心在收到主数据中心发送的同步请求后,备数据中心解析所述同步请求,然后根据解析后的结果对备数据中心内对象进行更新,更新完成后向主数据中心发送同步响应,所述同步响应可以用于向主数据中心表明更新成功或更新失败。然后主数据中心根据接收到的同步响应对同步任务表中的同步请求进行相应的操作,如删除同步请求,在删除同步请求时可以从同步任务表中查找出同步请求所对对应的同步请求,然后将该同步请求进行删除。
本发明实施例中,该方法还包括:
步骤307,在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,所述主数据中心获取与所述同步响应相关联的同步请求的更新内容;
步骤308,所述主数据中心以与所述同步响应相关联的同步请求的更新内容为列值,对应地添加在所述同步任务表中;
步骤309,所述主数据中心再次向所述备数据中心发送与所述同步响应相关联的同步请求。
本发明实施例中,所述方法还包括:所述主数据中心根据所述解析结果对所述主数据中心内所存储的对象进行更新操作。
本发明实施例中,所述方法还包括:所述主数据中心接收所述备数据中心的发送的同步响应;当所述同步响应表明所述备数据中心更新对象成功时,所述主数据中心从所述同步任务表中将与所述同步响应相关联的同步请求删除。
实施例四
基于前述的实施例,本发明实施例主要介绍一下以上实施例中所涉及的同步任务表;同步任务表作为一种优选的技术方案,在相关的实施例中,主数据中心和备数据中心未完成的更新请求或同步请求记录在同步任务表中,同步请求或更新请求是按照不同的阶段和来源进行划分,具体如下:
第一阶段的请求(即更新请求),其含义为:主数据中心(主AZ)获取到更新请求,该更新请求还未进行合并;在同步任务表中,主数据中心将更新请求以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳ts为列值,记录写入同步任务表中。
第二阶段的请求(同步请求),其含义:主数据中心(主AZ)将两个以上的更新请求按照更新操作的操作对象进行合并,合并后得到的同步请求,第二阶段的同步请求包括两种情况,第一种情况是:该同步请求还未发送给备数据中心(备AZ);第二种情况是,虽然同步请求已经发送给备数据中心,但是备数据中心还未向主数据返回同步响应;在同步任务表中,主数据中心将同步请求以更新操作的操作对象的关键字为主关键字(key),以更新操作为列名,以更新操作的时间戳ts为列值,记录写入同步任务表中。
第三阶段的请求(仍然是同步请求),其含义:主数据中心(主AZ)将两个以上的更新请求按照更新操作的操作对象进行合并,合并后得到的同步请求,但是该同步请求已经发送给备数据中心,而且主数据中心已经收到备数据中心发送的能够表明数据同步成功的同步响应;在同步任务表中,主数据中心根据同步响应中的主关键字查找到同步请求,并将该同步请求删除。
第四阶段的同步请求(仍然是同步请求),其含义:主数据中心(主AZ)将两个以上的更新请求按照更新操作的操作对象进行合并,合并后得到的同步请求,但是该同步请求已经发送给备数据中心,而且主数据中心在预定时间内未同步响应,或者虽然收到了同步响应,但是同步响应是表明数据同步失败的响应;在同步任务表中,主数据中心将获取该同步请求的更新内容,以更新内容为列值添加到同步任务表中。下面表1给出一种实现同步任务表的实施例。
表1
本发明实施例的该同步任务表中,记录时间戳的原因在于对于同一个对象,其可能在一定的周期内修改过多次,因此可根据“操作类型+时间戳”进行合并,再将合并后的同步请求发给备数据中心进行处理,以减少主数据中心和备数据中心之间的网络传输带宽、以及通过减少备数据中心需要执行的操作次数进而减少磁盘读写次数。
其中,在该同步任务表中对于还未发给备数据中心的同步请求,列值中并不记录对该对象的更新内容,以减少同步认为表中需要存储数据量进而减少磁盘读写次数以及所需存储量。
其中,在该同步任务表中当对同一个对象的多个更新请求合并得到同步请求,再发送给备数据中心,例如:对同一对象的还未发送出去的多个更新请求“NOSYNC_MOD”,合并后得到同步请求,该同步请求的时间戳与更新请求相比,同步请求的时间戳最大的,然后将该同步请求发送出去后,其插入对应的“SYNCING_MOD”列、并删除已合并的“NOSYNC_MOD”相关列。并将该更新内容记录到该表的“SYNCING_MOD”列中,便于在备数据中心整体挂掉后,在主数据中心多次周期性后台同步重试时,仅需重复发送该列值,而不需再在主数据中心中重复查找该对象的更新内容,进而减少查询时间开销以及磁盘读写次数。
同时,若请求响应失败或备数据中心挂掉,则主数据中心未能收到同步响应,则该对象不会被从同步任务表中删除;主数据中心会周期性重试这些同步请求,一旦备数据中心恢复正常、且该请求被备数据中心正常处理返回同步响应,只有成功同步后的对象才会被从同步任务表中删除;这样保证最终所有请求均被在主数据中心和备数据中心中同步。
下面将结合图1-1以及图1-1所关联的实施例,举例说明本发明实施例的主要操作流程,假设在一定的时间内从外部应用获取到8个更新请求,如下:
ts1时刻的更新请求:创建对象O1;
ts2时刻的更新请求:创建对象O2;
ts3时刻的更新请求:更新对象O1的自定义元数据m1;
ts4时刻的更新请求:更新对象O2的自定义元数据m2;
ts5时刻的更新请求:更新对象O1的访问权限acl1;
ts6时刻的更新请求:更新对象O2的访问权限acl2;
ts7时刻的更新请求:更新对象O1的自定义元数据m3;
ts8时刻的更新请求:删除对象O2。
由于主数据中心内存储对象数量众多,主数据中心周期性地对同步任务表的扫描和处理需一定的时间,假设主数据中心已对该8个更新请求完成了本地同步更新和请求插入同步任务表,则此时:
主数据中心中:对象O1的更新操作内容为:(O1数据+acl1+m3),对象O2的更新操作内容为:已删除。同步任务表未合并前,同步任务表中对象O1和O2的列内容为如表2所示(其中时间戳ts1<时间戳ts2<时间戳ts3<时间戳ts4<时间戳ts5<时间戳ts6<时间戳ts7<时间戳ts8):
表2
主数据中心可以周期性地扫描到以上的同步任务表,然后根据“操作类型+时间戳”对同一对象的不同操作进行合并,合并结果如表3所示:
表3
然后主数据中心将合并后的请求发给备AZ处理,并对同步任务表中的列进行状态转换,转换结果如表4所示:
表4
在表4中,对象O1中该列的内容来源于主数据中心对对象O1的更新内容,备数据中心在收到主数据中心的发送过来的同步请求后,在备数据中心对对象O1进行更新:将对象O1的内容更新为(O1数据+acl1+m3),然后将表明同步成功的同步响应返回给主数据中心;同理,在备数据中心对对象O2进行删除,然后将表明同步成功的同步响应返回给主数据中心。
主数据中心在收到备数据中心发过来的表明数据同步成功的同步响应后:在同步任务表中查找该同步响应的对象关键字O1,然后将其从同步任务表中删除;同理,对象关键字O2也从同步任务表删除;此外,若请求响应失败或备数据中心挂掉,则主数据中心未能收到同步响应,则该对象不会被从同步任务表中删除。主数据中心会周期性重试这些同步请求,一旦备数据中心恢复正常、且该同步请求被备数据中心正常处理返回响应,该成功同步后的对象才会被从同步任务表中删除;这样保证最终所有请求均被在主数据中心和备数据中心中数据的同步。
实施例五
基于上述的方法实施例,本发明实施例提供一种数据同步装置,本发明实施例中的数据同步装置可以通过主数据中心中的处理器来实现,图4为本发明实施例五数据同步装置的组成结构示意图,如图4所示,该数据同步装置400包括第一获取单元401、解析单元402、合并单元403和第一发送单元404,其中:
所述第一获取单元401,用于获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述解析单元402,用于解析所述两个以上的更新请求,得到解析结果;
所述合并单元403,用于根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述第一发送单元404,用于将所述同步请求发送给备数据中心。
本发明实施例中,所述第一获取单元,用于在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。
本发明实施例中,所述装置还包括更新单元,用于根据所述解析结果对所述主数据中心内所存储的对象进行更新操作。
本发明实施例中,所述更新请求包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
实施例六
基于上述的方法实施例,本发明实施例提供一种数据同步装置,图5为本发明实施例六数据同步装置的组成结构示意图,如图5所示,该数据同步装置500包括第一获取单元501、解析单元502、更新单元503、写入单元504、合并单元505、删除单元506、第一发送单元507、接收单元508和第二发送单元509,其中:
所述第一获取单元501,用于获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
这里,所述主数据中心获取两个以上的更新请求,包括:所述主数据中心在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。例如,主数据中心在t11时刻同时从外部获取到两个以上的更新请求;或者,主数据中心在t11时刻获取一个更新请求,在t12、t13、t14和t15时刻分别获取两个以上的更新请求。
本发明实施例所涉及的更新请求包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容;其中所述更新操作的关键字包括创建、修改和删除;其中,操作对象即为数据中心的存储对象。
这里,在具体实现的过程中,所述主数据中心获取两个以上的更新请求,可以为:主数据中心接收来自外部应用的两个以上的更新请求。
所述解析单元502,用于解析所述两个以上的更新请求,得到解析结果;
这里,所述解析结果可以包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
所述更新单元503,用于根据所述解析结果对所述主数据中心内所存储的对象进行更新操作;
所述写入单元504,用于根据解析结果,将所述两个以上的更新请求写入同步任务表中;
所述合并单元505,用于在所述同步任务表中,根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述删除单元506,用于将所述同步请求写入同步任务表中,并删除被所述同步请求所合并掉的所述两个以上的更新请求;
这里,假设有三个更新请求UD11、UD12和UD13,其中UD11是针对第一对象和第二对象的更新操作,而UD12是针对第二对象的更新操作,UD13是针对第一对象的更新操作,那么合并之后,可以形成一个或两个同步请求。当合并之后形成一个同步请求UD15时,该同步请求UD15是针对第一对象和第二对象的同步请求;当合并之后形成两个同步请求UD16和UD17时,其中同步请求UD16是针对第一对象的同步请求,同步请求UD17是针对第二对象的同步请求。在形成同步请求(UD15)或(UD16和UD17)后,可以从同步任务表中将更新请求UD11、UD12和UD13删除掉。
所述第一发送单元507,用于所述主数据中心将所述同步请求发送给备数据中心。
这里,备数据中心在收到主数据中心发送的同步请求后,备数据中心解析所述同步请求,然后根据解析后的结果对备数据中心内对象进行更新,更新完成后向主数据中心发送同步响应,所述同步响应可以用于向主数据中心表明更新成功或更新失败。然后主数据中心根据接收到的同步响应对同步任务表中的同步请求进行相应的操作,如删除同步请求,在删除同步请求时可以从同步任务表中查找出同步请求所对对应的同步请求,然后将该同步请求进行删除。
所述接收单元508,用于接收所述备数据中心的发送的同步响应;
当所述同步响应表明所述备数据中心更新对象成功时,所述删除单元,还用于从所述同步任务表中将与所述同步响应相关联的同步请求删除。
所述第二发送单元509,用于在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,所述主数据中心再次向所述备数据中心发送与所述同步响应相关联的同步请求。
本发明实施例中,该装置还包括记录单元,用于将所述同步请求记录于所述同步任务表中。
实施例七
基于上述的方法实施例,本发明实施例提供一种数据同步装置,图6为本发明实施例七数据同步装置的组成结构示意图,如图6所示,该数据同步装置600包括第一获取单元601、解析单元602、写入单元603、合并单元604、删除单元605、第一发送单元606、第二获取单元607、添加单元608和第二发送单元609,其中:
所述第一获取单元601,用于获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述解析单元602,用于解析所述两个以上的更新请求,得到解析结果;
所述写入单元603,用于以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述两个以上的更新请求记录写入同步任务表中。
这里,所述同步任务表中以更新操作的操作对象的关键字为主关键字,以所述更新操作的关键字为列名,以所述更新操作的时间戳为列值。
所述合并单元604,用于在所述同步任务表中,根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述写入单元,还用于以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述同步请求写入同步任务表中,触发所述删除单元;
所述删除单元605,用于删除被所述同步请求所合并掉的所述两个以上的更新请求;
所述第一发送单元606,用于将所述同步请求发送给备数据中心;
本发明实施例中,该装置还包括:
所述第二获取单元,用于在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,获取与所述同步响应相关联的同步请求的更新内容;
所述添加单元,用于以所述与所述同步响应相关联的同步请求的更新内容为列值,对应地添加在所述同步任务表中;
所述第二发送单元,用于再次向所述备数据中心发送与所述同步响应相关联的同步请求。
本发明实施例中,所述合并单元,用于根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到具有时间戳信息最大的同步请求。
本发明实施例中,所述装置还包括接收单元,用于接收所述备数据中心的发送的同步响应;
对应地,所述删除单元,用于当所述同步响应表明所述备数据中心更新对象成功时,从所述同步任务表中将与所述同步响应相关联的同步请求删除。
这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种数据同步方法,其特征在于,所述方法包括:
主数据中心获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述主数据中心解析所述两个以上的更新请求,得到解析结果;
所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述主数据中心将所述同步请求发送给备数据中心。
2.根据权利要求1所述的方法,其特征在于,所述主数据中心获取两个以上的更新请求,包括:
所述主数据中心在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。
3.根据权利要求1所述的方法,其特征在于,在所述主数据中心解析所述两个以上的更新请求,得到解析结果之后,所述方法还包括:
所述主数据中心根据所述解析结果对所述主数据中心内所存储的对象进行更新操作。
4.根据权利要求1所述的方法,其特征在于,所述更新请求中包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述主数据中心解析所述两个以上的更新请求,得到解析结果之后,所述方法还包括:
所述主数据中心将所述两个以上的更新请求写入同步任务表中;
对应地,所述根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求,包括:
在所述同步任务表中,所述主数据中心根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
对应地,所述方法还包括:
所述主数据中心将所述同步请求记录于所述同步任务表中。
6.根据权利要求5所述的方法,其特征在于,所述同步任务表中以更新操作的操作对象的关键字为主关键字,以所述更新操作的关键字为列名,以所述更新操作的时间戳为列值;
对应地,所述主数据中心将所述两个以上的更新请求写入同步任务表中,包括:
所述主数据中心以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述两个以上的更新请求记录写入同步任务表中。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述主数据中心接收所述备数据中心的发送的同步响应;
当所述同步响应表明所述备数据中心更新对象成功时,所述主数据中心从所述同步任务表中将与所述同步响应相关联的同步请求删除。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,所述主数据中心获取与所述同步响应相关联的同步请求的更新内容;
所述主数据中心以与所述同步响应相关联的同步请求的更新内容为列值,对应地添加在所述同步任务表中;
所述主数据中心再次向所述备数据中心发送与所述同步响应相关联的同步请求。
9.根据权利要求5所述的方法,其特征在于,所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求,包括:
所述主数据中心根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到具有时间戳信息最大的同步请求。
10.一种数据同步装置,其特征在于,所述装置包括第一获取单元、解析单元、合并单元和第一发送单元,其中:
所述第一获取单元,用于获取两个以上的更新请求,所述两个以上的更新请求用于对主数据中心中存储的对象进行更新操作;
所述解析单元,用于解析所述两个以上的更新请求,得到解析结果;
所述合并单元,用于根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
所述第一发送单元,用于将所述同步请求发送给备数据中心。
11.根据权利要求10所述的装置,其特征在于,所述第一获取单元,用于在同一时刻或不同的时刻接收来自外部的两个以上的更新请求。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括更新单元,用于根据所述解析结果对所述主数据中心内所存储的对象进行更新操作。
13.根据权利要求10所述的装置,其特征在于,所述更新请求包括所述更新操作的操作对象、所述更新操作的关键字和所述更新操作的更新内容。
14.根据权利要求10至13任一项所述的装置,其特征在于,所述装置还包括写入单元,用于将所述两个以上的更新请求写入同步任务表中;
对应地,所述合并单元,用于在所述同步任务表中,根据所述解析结果将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到同步请求;
对应地,所述装置还包括记录单元,用于将所述同步请求记录于所述同步任务表中。
15.根据权利要求14所述的装置,其特征在于,所述同步任务表中以更新操作的操作对象的关键字为主关键字,以所述更新操作的关键字为列名,以所述更新操作的时间戳为列值;
对应地,所述写入单元,用于以更新操作的操作对象的关键字为主关键字,以更新操作为列名,以更新操作的时间戳为列值,将所述两个以上的更新请求记录写入同步任务表中。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括接收单元和删除单元,其中:
所述接收单元,用于接收所述备数据中心的发送的同步响应;
所述删除单元,用于当所述同步响应表明所述备数据中心更新对象成功时,从所述同步任务表中将与所述同步响应相关联的同步请求删除。
17.根据权利要求14所述的装置,其特征在于,所述装置还包括第二获取单元、添加单元和第二发送单元,其中:
所述第二获取单元,用于在预定的时间内未接收所述备数据中心的发送的同步响应,或者,所述同步响应表明所述备数据中心未更新成功时,获取与所述同步响应相关联的同步请求的更新内容;
所述添加单元,用于以所述与所述同步响应相关联的同步请求的更新内容为列值,对应地添加在所述同步任务表中;
所述第二发送单元,用于再次向所述备数据中心发送与所述同步响应相关联的同步请求。
18.根据权利要求14所述的装置,其特征在于,所述合并单元,用于根据所述解析结果,将所述两个以上的更新请求所关联的同一所述对象的更新操作进行合并,得到具有时间戳信息最大的同步请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410790983.3A CN105763587A (zh) | 2014-12-18 | 2014-12-18 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410790983.3A CN105763587A (zh) | 2014-12-18 | 2014-12-18 | 一种数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105763587A true CN105763587A (zh) | 2016-07-13 |
Family
ID=56340423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410790983.3A Pending CN105763587A (zh) | 2014-12-18 | 2014-12-18 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763587A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512948A (zh) * | 2018-03-21 | 2018-09-07 | 平安普惠企业管理有限公司 | 通讯录更新方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656454A (zh) * | 2002-03-29 | 2005-08-17 | 卓越技术公司 | 用于对数据处理设备与数据服务进行全无线同步的系统和方法 |
US20130132335A1 (en) * | 2011-11-23 | 2013-05-23 | Inventec Corporation | Updating method and system of application system database thereof |
CN103825930A (zh) * | 2013-11-12 | 2014-05-28 | 浙江省水文局 | 一种分布式环境下的实时数据同步方法 |
CN103873451A (zh) * | 2012-12-17 | 2014-06-18 | 中国移动通信集团公司 | 一种数据同步的方法、设备和系统 |
CN103875229A (zh) * | 2013-12-02 | 2014-06-18 | 华为技术有限公司 | 异步复制方法、装置与系统 |
US8868525B2 (en) * | 2012-08-24 | 2014-10-21 | Facebook, Inc. | Distributed information synchronization |
-
2014
- 2014-12-18 CN CN201410790983.3A patent/CN105763587A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656454A (zh) * | 2002-03-29 | 2005-08-17 | 卓越技术公司 | 用于对数据处理设备与数据服务进行全无线同步的系统和方法 |
US20130132335A1 (en) * | 2011-11-23 | 2013-05-23 | Inventec Corporation | Updating method and system of application system database thereof |
US8868525B2 (en) * | 2012-08-24 | 2014-10-21 | Facebook, Inc. | Distributed information synchronization |
CN103873451A (zh) * | 2012-12-17 | 2014-06-18 | 中国移动通信集团公司 | 一种数据同步的方法、设备和系统 |
CN103825930A (zh) * | 2013-11-12 | 2014-05-28 | 浙江省水文局 | 一种分布式环境下的实时数据同步方法 |
CN103875229A (zh) * | 2013-12-02 | 2014-06-18 | 华为技术有限公司 | 异步复制方法、装置与系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512948A (zh) * | 2018-03-21 | 2018-09-07 | 平安普惠企业管理有限公司 | 通讯录更新方法、装置、计算机设备和存储介质 |
CN108512948B (zh) * | 2018-03-21 | 2022-05-17 | 平安普惠企业管理有限公司 | 通讯录更新方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866967B2 (en) | Multi-replica asynchronous table replication | |
EP2429134B1 (en) | Method and apparatus for checking and synchronizing data block in distributed file system | |
RU2591169C2 (ru) | Система управления базой данных | |
US9720992B2 (en) | DML replication with logical log shipping | |
CN103379159B (zh) | 一种分布式Web站点数据同步的方法 | |
CN106815218B (zh) | 数据库访问方法、装置和数据库系统 | |
CN102955845B (zh) | 数据访问方法、装置与分布式数据库系统 | |
CN103780638B (zh) | 数据同步方法及系统 | |
CN103744906A (zh) | 一种数据同步系统、方法及装置 | |
CN103714097A (zh) | 一种访问数据库的方法和装置 | |
US9229970B2 (en) | Methods to minimize communication in a cluster database system | |
CN103345502B (zh) | 分布式数据库的事务处理方法和系统 | |
CN102306115A (zh) | 异步远程复制方法、系统及设备 | |
CN104348913B (zh) | 一种紧耦合可扩展的大数据交互方法 | |
CN106055698A (zh) | 数据迁移方法、代理节点及数据库实例 | |
US20150006485A1 (en) | High Scalability Data Management Techniques for Representing, Editing, and Accessing Data | |
CN105227657A (zh) | 一种数据同步的方法和装置 | |
CN103902405A (zh) | 一种准连续性数据复制方法及装置 | |
CN103970834A (zh) | 一种异构数据库同步系统中增量数据同步故障的恢复方法 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
CN116917880A (zh) | 分布式数据库远程备份 | |
US9043283B2 (en) | Opportunistic database duplex operations | |
JP2006323663A (ja) | 情報処理システムとレプリケーション方法並びに差分情報保持装置とプログラム | |
KR101875763B1 (ko) | 테이블 재구성시 트랜잭션의 성능저하를 최소화하는 온라인 데이터 베이스 관리 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |