CN105740248A - 一种数据同步方法、装置及系统 - Google Patents

一种数据同步方法、装置及系统 Download PDF

Info

Publication number
CN105740248A
CN105740248A CN201410747452.6A CN201410747452A CN105740248A CN 105740248 A CN105740248 A CN 105740248A CN 201410747452 A CN201410747452 A CN 201410747452A CN 105740248 A CN105740248 A CN 105740248A
Authority
CN
China
Prior art keywords
nodal point
list item
data
log
primary nodal
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
Application number
CN201410747452.6A
Other languages
English (en)
Other versions
CN105740248B (zh
Inventor
覃超立
彭蕾芳
侯冰剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410747452.6A priority Critical patent/CN105740248B/zh
Publication of CN105740248A publication Critical patent/CN105740248A/zh
Application granted granted Critical
Publication of CN105740248B publication Critical patent/CN105740248B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提供一种数据同步方法、装置及系统,涉及存储领域,解决了现有技术中对于同步数据无法有效恢复或者存取同步数据时占用过多IO资源的问题。该方案包括:第一节点接收用户发起的数据修改指令,该数据修改指令至少包括待修改数据的表项标识;第一节点根据表项标识以及预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型;若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,第一重做日志中携带有用于指示表项类型的复制表项标签;第一节点将第一重做日志发送至第二节点,以使得第二节点根据复制表项标签和第一重做日志同步第二节点内复制表项的同步数据。

Description

一种数据同步方法、装置及系统
技术领域
本发明涉及存储领域,尤其涉及一种数据同步方法、装置及系统。
背景技术
结构化查询语言(structuredquerylanguage,SQL)是一种内存数据库(memorydatabase,MDB)查询和程序设计语言,主要用于存取数据以及查询、更新和管理内存数据库中的数据。
具体的,可以使用SQL语句在内存数据库的各个节点内建立临时表和普通表,其中,临时表可用于存放一些临时任务的数据(如用户当前的计费时长等),当临时表的存储空间不足或者临时任务结束后,节点会清空临时表中的数据,而普通表则用于存放一些重要且稳定性高的数据(如用户的余额数据等,本申请将这类数据称为普通数据),为了保证普通表中数据的可靠性,节点需要将普通表中的普通数据通过IO接口写入磁盘进行持久化管理。
进一步地,在节点将普通数据写入磁盘之前,还需要遵循WAL(write-aheadlogging,预写式日志)原则生成普通表中发生变化的普通数据的重做日志(redolog),并将该重做日志发送至其他节点,其中,该重做日志用于描述普通表中的普通数据的修改信息,这样一来,其他节点就可以根据该重做日志对自身的普通表进行修改,以保证各个节点的普通表中所存放的普通数据的同步性和一致性,可避免某一节点发生故障时,该节点的普通表中的数据无法恢复的问题。
然而,对于需经常参与内存数据库中的关系运算的数据或者用户的会话信息等数据来说,这类数据不要求写入磁盘进行持久化管理,但要求保证节点之间数据的一致性(本申请将这类数据统一称作同步数据),可见,如果将同步数据存放在临时表中,当节点清空临时表中的数据后,同步数据就无法恢复,如果将同步数据存放在普通表中,虽然可以从其他节点中恢复该同步数据,但是节点需要将普通表中的同步数据通过IO接口多次读写磁盘进行持久化管理,占用过多的IO资源,导致整个内存数据库中数据存取性能的下降。
发明内容
本发明的实施例提供一种数据同步方法、装置及系统,解决了现有技术中对于同步数据无法有效恢复或者存取同步数据时占用过多IO资源的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的实施例提供一种数据同步方法,包括:
第一节点接收用户发起的数据修改指令,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;
所述第一节点根据所述表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;
若所述数据修改指令的表项类型为用于存储同步数据的复制表项,所述第一节点则根据所述数据修改指令生成第一重做日志,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;
所述第一节点将所述第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据,所述第二节点为对所述第一节点的数据进行备份的节点。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一节点中还设有用于存储普通数据的普通表项,其中,
在所述第一节点根据所述表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型之后,还包括:
若所述数据修改指令的表项类型为所述普通表项,所述第一节点则根据所述数据修改指令生成第二重做日志,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况;
所述第一节点根据普通表项标签获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘中。
结合前述的第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述第一节点则根据所述数据修改指令生成第二重做日志以及所述第一节点则根据所述数据修改指令生成第一重做日志之后,还包括:
若所述第二重做日志丢失,所述第一节点则从所述磁盘中获取已存储的所述第二重做日志;
所述第一节点将所述第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
结合第一方面或者前述的第一方面的第一至第二种可能的实现方式种的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述第一节点则根据所述数据修改指令生成第一重做日志之后,还包括:
若所述第一重做日志丢失,所述第一节点则获取所述第二节点发送的基线请求,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;
所述第一节点根据所述基线请求,将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
结合第一方面或者前述的第一方面的第一至第三种可能的实现方式种的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,在第一节点接收用户发起的数据修改指令之前,还包括
所述第一节点在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘内的数据。
第二方面,本发明的实施例提供一种节点,所述节点中设有用于存储同步数据的复制表项,所述节点包括:
获取单元,用于接收用户发起的数据修改指令,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;
确定单元,用于根据所述获取单元中的表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;
日志生成单元,用于若所述确定单元中所述数据修改指令的表项类型为所述复制表项,则根据所述获取单元中的数据修改指令生成第一重做日志,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;
日志发送单元,用于将所述日志生成单元中的第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据,所述第二节点为对所述第一节点的数据进行备份的节点。
结合第二方面,在第二方面的第一种可能的实现方式中,所述节点还包括日志提取单元,其中,
所述日志生成单元,还用于若所述数据修改指令的表项类型为所述普通表项,则根据所述数据修改指令生成第二重做日志,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况,所述节点中还设有用于存储普通数据的普通表项;
所述日志提取单元,用于根据普通表项标签获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘中。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述日志提取单元,还用于若所述第二重做日志丢失,则从所述磁盘中获取已存储的所述第二重做日志;
所述日志发送单元,还用于将所述第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
结合第二方面或第二方面的第一至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述获取单元,还用于若所述第一重做日志丢失,则获取所述第二节点发送的基线请求,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;
所述日志发送单元,还用于根据所述基线请求,将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
结合第二方面或第二方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述节点还包括:
表项建立单元,用于在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘内的数据。
第三方面,本发明的实施例提供一种数据同步系统,其特征在于,所述系统包括如第二方面或第二方面的第一至第四种可能的实现方式中的任一种可能的实现方式中所述的第一节点,以及对所述第一节点的数据进行备份的第二节点。
本发明的实施例提供一种数据同步方法、装置及系统,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据同步方法的流程示意图一;
图2为本发明实施例提供的一种数据同步方法的流程示意图二;
图3为一种CBS计费系统的架构示意图;
图4为本发明实施例提供的一种数据同步方法的交互示意图;
图5为本发明实施例提供的一种节点的硬件示意图;
图6为本发明实施例提供的一种节点的结构示意图一;
图7为本发明实施例提供的一种节点的结构示意图二;
图8为本发明实施例提供的一种节点的结构示意图三;
图9为本发明实施例提供的一种数据同步系统的架构示意图一;
图10为本发明实施例提供的一种数据同步系统的架构示意图二。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
实施例一
本发明的实施例提供一种数据同步方法,所述方法应用于内存数据库中的各个节点,所述各个节点中均设有用于存储同步数据的复制表项,本实施例中以第一节点和第二节点为例进行详细阐述,如图1所示,包括:
101、第一节点接收用户发起的数据修改指令,该数据修改指令至少包括待修改数据的表项标识。
102、第一节点根据表项标识以及预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型。
103、若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,该第一重做日志中携带有用于指示表项类型的复制表项标签,该第一重做日志用于指示复制表项中同步数据的变化情况。
104、第一节点将第一重做日志发送至第二节点,以使得第二节点根据复制表项标签和第一重做日志同步第二节点内复制表项的同步数据。
本发明实施例提供的一种数据同步方法,在各个节点内设有用于存储同步数据的复制表项,以第一节点为例,该第一节点内的同步数据可以指那些需要与第二节点同步且不需要写入第一节点的磁盘内的数据,例如用户的会话数据等,这些数据仅仅要求与其他节点中的普通表项进行同步,以防数据丢失,并不要求在本地节点中持久化管理。
另外,各个节点内还可以设有用于存储普通数据的普通表项,该普通数据可以指那些既需要与第二节点同步,且又需要写入第一节点的磁盘内的数据,例如用户的余额信息等数据,这些数据既要求在本地节点中持久化管理,又要求与其他节点中的普通表项进行同步,以防数据丢失。
具体的,由于复制表项本身是一种既需要与第二节点同步,且又需要写入第一节点的磁盘内的普通数据,因此,本发明中建立复制表项的方法可沿用现有技术中处理普通数据的方法,对此不做进一步阐述。可以看出,本发明添加了复制表项,专门用于存储同步数据,相对与现有技术,本发明对数据的类别进行了细粒度的划分,因而可以对不同类别的数据进行精细的调度,提高了数据的处理效率且提高了数据资源的利用率。
在步骤101中,当用户需要对第一节点内的数据进行修改时,向第一节点发起数据修改指令,该数据修改指令至少包括待修改数据的表项标识。应当理解的是,此处的修改数据可以是添加数据,删除数据或改动数据等,本发明对此不作限制。
例如,用户使用SQL语句向第一节点下发数据修改指令,比如,DeletefromtalbeAwherefield1=“123”,其中,tableA可以作为该数据修改指令中的表项标识。
在步骤102中,在接收到用户发起的数据修改指令之后,第一节点根据数据修改指令中的表项标识以及预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型。
由于在每一张表项建立的时候,该表项的表项类型是确定的,因此,预置的表项标识与表项类型的对应关系可以如表1所示,当第一节点接收到用户发起的数据修改指令之后,根据表1就可以确定数据修改指令中的表项标识所对应的表项类型。
表1
表项标识 表项类型
tableA 复制表项
tableB 普通表项
…… ……
在步骤103中,若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,该第一重做日志中携带有用于指示表项类型的复制表项标签,该第一重做日志用于指示复制表项中同步数据的变化情况。
具体的,若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,该第一重做日志可以记录用户在某个地址处将第一数据修改为第二数据,或者记录第一数据修改与第二数据的变化关系,同时,由于该数据修改指令的表项类型为复制表项,因此,第一节点可以在第一重做日志中添加复制表项标签。由于第一节点会将携带有复制表项标签的第一重做日志和携带有普通表项标签的第二重做日志都存储在日志缓冲区,因此,日志中添加各类表项标签可以使得第一节点区别属于不同表项的不同重做日志。
进一步地,为保证数据修改的时序性,第一节点在根据数据修改指令生成第一重做日志之后,根据该数据修改指令对复制表项中的同步数据进行修改,这里的修改操作仍然是在缓存中完成的。而在现有技术中,由于节点内不设有复制表项,因此,需要同步的数据都存储在普通表项中,第一节点在根据数据修改指令生成重做日志时,将所有的同步日志都写入磁盘中,占用了大量IO资源,另外,在现有技术中,第一节点在根据数据修改指令生成重做日志之后,根据数据修改指令对普通表项中的普通数据进行修改,进而将修改后的普通数据再次写入磁盘中,可以看出,一些数据(例如同步数据)是完全不用写入磁盘进行本地持久化管理的,因此,会造成IO资源的大量浪费。
在步骤104中,第一节点根据数据修改指令生成第一重做日志之后,无需将第一重做日志写入磁盘,便可直接将第一重做日志发送至第二节点,第二节点根据第一重做日志中的复制表项标签确定需要对第二节点的复制表项进行修改,因而第二节点进一步根据第一重做日志中所描述的复制表项中同步数据的变化情况,进行数据同步操作。
本发明的实施例提供一种数据同步方法,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
实施例二
本发明的实施例提供一种数据同步方法,所述方法应用于内存数据库中的各个节点,所述各个节点中均设有用于存储同步数据的复制表项,本实施例中以第一节点和第二节点为例进行详细阐述,如图2所示,包括:
201、第一节点接收用户发起的数据修改指令,该数据修改指令至少包括待修改数据的表项标识。
202、第一节点根据表项标识以及预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型。
203a、若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志并存储在日志缓冲区。
203b、若数据修改指令的表项类型为普通表项,第一节点则根据数据修改指令生成第二重做日志并存储在日志缓冲区。
203c、第一节点根据数据修改指令对普通表项中的普通数据进行修改,并将修改后的普通数据写入磁盘。
204、第一节点根据普通表项标签从日志缓冲区内复制第二重做日志,并将第二重做日志写入第一节点的磁盘中。
205、第一节点将日志缓冲区内的第一重做日志或第二重做日志发送至第二节点,以使得第二节点根据第一重做日志或第二重做日志分别同步第二节点内复制表项的同步数据和普通表项的普通数据。
本发明实施例提供的一种数据同步方法,在各个节点内设有用于存储同步数据的复制表项,以第一节点为例,该第一节点内的同步数据可以指那些需要与第二节点同步且不需要写入第一节点的磁盘内的数据,例如用户的会话数据等,这些数据仅仅要求与其他节点中的普通表项进行同步,以防数据丢失,并不要求在本地节点中持久化管理。
另外,各个节点内还可以设有用于存储普通数据的普通表项,该普通数据可以指那些既需要与第二节点同步且,又需要写入第一节点的磁盘内的数据,例如用户的余额信息等数据,这些数据既要求在本地节点中持久化管理,又要求与其他节点中的普通表项进行同步,以防数据丢失。
具体的,由于复制表项本身是一种既需要与第二节点同步,且又不需要写入第一节点的磁盘内的数据,因此,本发明中建立复制表项的方法可沿用现有技术中处理普通数据的方法,对此不做进一步阐述。可以看出,本发明添加了复制表项,专门用于存储同步数据,相对与现有技术,本发明对数据的类别进行了细粒度的划分,因而可以对不同类别的数据进行精细的调度,提高了数据的处理效率且提高了数据资源的利用率。
在步骤201中,当用户需要对第一节点内的数据进行修改时,可使用SQL语句向第一节点发起数据修改指令,该数据修改指令至少包括待修改数据的表项标识。
在步骤202中,在接收到用户发起的数据修改指令之后,第一节点根据数据修改指令中的表项标识以及预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型。
由于在每一张表项建立的时候,该表项的表项类型是确定的,因此,预置的表项标识与表项类型的对应关系可以如表1所示,当第一节点接收到用户发起的数据修改指令之后,根据表1就可以确定数据修改指令中的表项标识所对应的表项类型。
在执行完步骤202之后,若数据修改指令的表项类型为复制表项,则执行步骤203a,若数据修改指令的表项类型为普通表项,则执行步骤203b至203c。
在步骤203a中,若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,该第一重做日志中携带有用于指示表项类型的复制表项标签,该第一重做日志用于指示复制表项中同步数据的变化情况。
具体的,若数据修改指令的表项类型为复制表项,第一节点则根据数据修改指令生成第一重做日志,该第一重做日志可以记录用户在某个地址处将第一数据修改为第二数据,或者记录第一数据修改与第二数据的变化关系,同时,由于该数据修改指令的表项类型为复制表项,因此,第一节点可以在第一日志中添加复制表项标签。由于第一节点会将携带有复制表项标签的第一重做日志和携带有普通表项标签的第二重做日志都存储在日志缓冲区,因此,日志中添加各类表项标签可以使得第一节点区别属于不同表项的不同重做日志。
进一步地,为保证数据修改的时序性,第一节点在根据数据修改指令生成第一重做日志之后,根据数据修改指令对复制表项中的同步数据进行修改,这里的修改操作仍然是在缓存中完成的。
在步骤203b中,若数据修改指令的表项类型为普通表项,第一节点则根据数据修改指令生成第二重做日志并存储在日志缓冲区,该第二重做日志中携带有用于指示表项类型的普通表项标签,该第二重做日志用于指示普通表项中普通数据的变化情况。
在步骤203c中,由于普通表项中的普通数据要求在本地进行持久化管理,因此,第一节点在根据数据修改指令生成第二重做日志之后,根据数据修改指令对普通表项中的普通数据进行修改,并将修改后的普通数据写入磁盘。
可以看出,本发明的实施例将数据细粒度的划分为同步数据和普通数据,对仅要求节点之间的数据保持同步的同步数据不写入磁盘,直接生成第一重做日志存储在日志缓冲区。而对要求节点之间的数据保持同步且要求本地持久化管理的普通数据,既生成第二重做日志存储在日志缓冲区,同时将修改后的普通数据写入磁盘中,这样一来,避免了将各种类型的数据全部写入磁盘所带来的IO资源浪费。
在步骤204中,由于第一重做日志和第二重做日志统一存储在日志缓冲区,而且,针对普通数据的第二日志需要写入磁盘做持久化管理,因此,第一节点根据第二重做日志中携带的普通表项标签从日志缓冲区内复制第二重做日志,并将第二重做日志写入第一节点的磁盘中。这样,避免了同时将第一重做日志和第二重做日志全部写入磁盘,所导致的IO资源浪费。
在步骤205中,由于第一重做日志和第二重做日志统一存储在日志缓冲区,因此,第一节点可以将日志缓冲区内的第一重做日志和第二重做日志统一发送至第二节点,以使得第二节点根据第一重做日志中的复制表项标签和第二重做日志中的普通表项标签分别同步第二节点内复制表项的同步数据和普通表项的普通数据。
其中,该日志缓冲区可以是第一节点内缓存的一部分,日志缓冲区可以将一段时间内分别获取到的第一重做日志和第二重做日志进行统一的保存,再周期性的以将日志缓冲区内的第一重做日志和第二重做日志统一发送至第二节点,当然,第一节点也有可能根据日志缓冲区的存储资源定时的向第二节点发送第一重做日志和第二重做日志。
示例性的,本发明的实施例提供的数据同步方法可以应用在CBS(ConvergentBillingSystem,融合计费系统)业务场景中,如图3所示,在CBS中包含多个宿主机(host),每个host中可以运行多个计费服务模块,用于接收用户在使用计费业务中生成的计费指令,计费服务模块根据计费指令向内存数据库中的第一节点下发数据修改指令,比如,DeletefromtalbeAwherefield1=“999”(即:从talbeA表中删除field1字段为999的记录),由于talbeA表所对应的表项类型为复制表项,因此,第一节点根据该数据修改指令,在修改第一节点自身数据的同时,还需与第二节点进行数据同步,以保证第一节点和第二节点内的数据一致,此时,第一节点根据该数据修改指令生成第一重做日志并储存在日志缓存区,该第一重做日志用于描述tableA表中数据的变化关系,并直接将第一重做日志发送至第二节点,以使得第二节点修改其自身的tableA表中的相应数据,保证第一节点和第二节点内数据的一致性。
可以看出,由于增加了对复制表项中同步数据的同步流程,对于只需要完成数据同步,而不需要进行本地磁盘备份的同步数据而言,第一节点无需像现有技术中处理普通表项中的普通数据一样进行多次磁盘写入操作,因此可以大大减少频繁的磁盘写入操作对数据库性能影响,经统计,在类似的CBS计费业务场景中,使用本发明提供的数据同步方法可以节约12%的成本和60%的磁阵开销。
另外,在第一节点可以将日志缓冲区内的第一重做日志和第二重做日志统一发送至第二节点的过程中,可能会出现第一节点和第二节点之间网络闪断等异常情况,此时,日志缓冲区内的第一重做日志和第二重做日志可能会丢失。
具体的,若第一重做日志丢失,第一节点可以继续向第二节点发送第二重做日志,以使得第二节点根据第二重做日志中的普通表项标签继续同步普通数据,以保证普通数据的同步不受到同步数据的影响,保证了普通数据的可靠性。
若第二重做日志丢失,第一节点则从磁盘中获取已存储的第二重做日志;进而,第一节点将第二重做日志发送至第二节点,以使得第二节点根据第二重做日志中的普通表项标签继续同步第二节点内普通表项中的普通数据,以保证普通数据的可靠性。
另外,若第一重做日志丢失,第一节点还可以获取第二节点发送的基线请求,基线请求用于指示对第一节点中的复制表项进行在线基线复制;第二节点在发送基线请求的T1时刻,同时清空日志缓存区的重做日志,此时,第一节点将自身的复制表项发送至第二节点,以使得第二节点将第二节点内的复制表项替换为第一节点发送的复制表项。当异常情况排除后的T2时刻,第一节点可以继续生成第一重做日志和第二重做日志并发送至第二节点,以使得第二节点继续根据第一重做日志和第二重做日志进行数据同步。
具体的,参见图4,当第一重做日志丢失,第二节点无法正常接收到第一节点发送的第一重做日志,此时,第二节点内的MDB(memorydatabase,内存数据库)服务模块向第一节点发起基线请求,同时清空第二节点内日志缓存区的重做日志,第一节点在t1时刻接收到该基线请求,并将自身的复制表项中t1时刻之前的数据全量发送至第二节点的MDB服务模块进行数据同步,当第二节点在t2时刻完成数据同步后,第一节点将t1至t2时刻接收到的第一重做日志和/或第二重做日志发送给第二节点,以使得第二节点继续根据第一重做日志和/或第二重做日志继续进行增量数据同步,当第二节点再次无法正常接收到第一节点发送的第一重做日志时,可重复上述步骤以保证第一节点与第二节点的数据同步。
本发明的实施例提供一种数据同步方法,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
实施例三
如图5所示,为本发明的实施例提供一种节点的硬件示意图。
该节点可以为内存数据库的各个节点中的任一个(设该节点为第一节点),各个节点中均设有用于存储同步数据的复制表项,该同步数据为需要与第二节点同步且不需要写入第一节点的磁盘内的数据。另外,各个节点中还设有用于存储普通数据的普通表项,该普通数据为既需要与第二节点同步,又需要写入第一节点的磁盘内的数据。
如图5,所述第一节点包括处理器11、收发器12、缓存13、磁盘14以及总线15。
其中,处理器11、收发器12、缓存13和磁盘14通过总线15通信连接。
处理器11,是所述第一节点的控制中心,处理器11通过对收发器12接收到的数据进行处理,并调用缓存13或者磁盘14中的软件或程序,执行所述第一节点的各项功能。
通信接口12,可以由光收发器,电收发器,无线收发器或其任意组合实现。例如,光收发器可以是小封装可插拔(英文:smallform-factorpluggabletransceiver,缩写:SFP)收发器(英文:transceiver),增强小封装可插拔(英文:enhancedsmallform-factorpluggable,缩写:SFP+)收发器或10吉比特小封装可插拔(英文:10Gigabitsmallform-factorpluggable,缩写:XFP)收发器。电收发器可以是以太网(英文:Ethernet)网络接口控制器(英文:networkinterfacecontroller,缩写:NIC)。无线收发器可以是无线网络接口控制器(英文:wirelessnetworkinterfacecontroller,缩写:WNIC)。第一节点可以有多个通信接口12。
缓存13,是具有极快的存取速率,它是硬盘14内部存储和外界接口之间的缓冲器。由于硬盘14的内部数据传输速率和外界介面传输速率不同,缓存13在其中起到一个缓冲的作用。缓存13的大小与速率是直接关系到硬盘14的传输速率的重要因素,能够大幅度地提高硬盘14整体性能。为了提高计算机的工作效率,处理器11可以先将数据写入缓存13中,在定期的将缓存13中的数据刷新至磁盘14内,或者定期的将缓存13中的数据进行更新以提高数据的处理速度。
磁盘14,是计算机硬件的一个重要部件,其作用是存放指令和数据,相较于缓存13,磁盘14的存储容量大大提高,具有容量大且存储数据的稳定性较高,但磁盘14的读写速度远远不如缓存14的读写速度。另外,在数据库系统中,从缓存13中向磁盘14内写日志和写数据文件是数据库中IO消耗最大的两种操作,因此,磁盘14的成本较于缓存13而言十分昂贵。
具体的,在本发明的实施例中,通信接口12接收用户发起的数据修改指令并发送至处理器11,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;处理器11根据所述表项标识以及缓存13中预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;若所述数据修改指令的表项类型为所述复制表项,处理器11则根据所述数据修改指令生成第一重做日志存储在缓存13中,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;处理器11通过通信接口12将所述第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据。
进一步地,所述第一节点中还设有用于存储普通数据的普通表项,其中,在处理器11根据所述表项标识以及缓存13中预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型之后,还可以包括步骤:若所述数据修改指令的表项类型为所述普通表项,处理器11则根据所述数据修改指令生成第二重做日志存储在缓存13中,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况;处理器11根据普通表项标签从缓存13中获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘14中。
进一步地,在处理器11则根据所述数据修改指令生成第一重作日志和第二重做日志存储在缓存13之后,若所述第二重做日志丢失,处理器11则从所述磁盘14中获取已存储的所述第二重做日志;处理器11通过通信接口12将所述第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
进一步地,在处理器11则根据所述数据修改指令生成第一重作日志和第二重做日志存储在缓存13之后,若所述第一重做日志丢失,通信接口12则获取所述第二节点发送的基线请求并发送至处理器11,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;处理器11根据所述基线请求,通过通信接口12将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
进一步地,在通信接口12接收用户发起的数据修改指令并发送至处理器11之前,处理器11根据用户的建立表项指令在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘14内的数据。
本发明的实施例提供一种节点,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
实施例四
本发明的实施例提供一种节点,如图6所示,包括:
获取单元21,用于接收用户发起的数据修改指令,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;
确定单元22,用于根据所述获取单元21中的表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;
日志生成单元23,用于若所述确定单元22中所述数据修改指令的表项类型为所述复制表项,则根据所述获取单元21中的数据修改指令生成第一重做日志,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;
日志发送单元24,用于将所述日志生成单元23中的第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据,所述第二节点为对所述第一节点的数据进行备份的节点。
进一步地,如图7所示,所述节点还包括日志提取单元25,其中,
所述日志生成单元23,还用于若所述数据修改指令的表项类型为所述普通表项,则根据所述数据修改指令生成第二重做日志,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况,所述第一节点中还设有用于存储普通数据的普通表项;
所述日志提取单元25,用于根据所述日志生成单元23中的普通表项标签获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘中。
进一步地,所述日志提取单元25,还用于若所述第二重做日志丢失,则从所述磁盘中获取已存储的所述第二重做日志;
所述日志发送单元24,还用于将所述日志提取单元25中的第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
进一步地,所述获取单元21,还用于若所述第一重做日志丢失,则获取所述第二节点发送的基线请求,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;
所述日志发送单元24,还用于根据所述获取单元21中的基线请求,将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
进一步地,如图8所示,所述节点还包括:
表项建立单元26,用于在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘内的数据。
本发明的实施例提供一种节点,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
实施例五
本发明的实施例提供一种数据同步系统,如图9所示,包括如实施例三或实施例四中所述的第一节点31,以及与所述第一节点相连的第二节点32,该第二节点32用于对第一节点31的数据进行备份。
参见图10,以及上述实施例中第一节点31与第二节点32交互的方法,该数据同步系统中的第一节点31和第二节点32中都包括缓存和磁盘,该缓存内存储有复制表项、普通表项以及日志缓存区。
具体的,第一节点31接收用户发起的数据修改指令,该数据修改指令至少包括待修改数据的表项标识,该表项标识用于指示待修改数据所属的表项类型;第一节点31根据表项标识以及缓存中预置的表项标识与表项类型的对应关系,确定数据修改指令的表项类型;若数据修改指令的表项类型为复制表项,第一节点31则根据数据修改指令生成第一重做日志存储在日志缓存区,第一重做日志中携带有用于指示表项类型的复制表项标签,第一重做日志用于指示复制表项中同步数据的变化情况;进而,第一节点31将日志缓存区的第一重做日志发送至第二节点32,以使得第二节点32根据第一重做日志同步第二节点32内复制表项的同步数据。
相应的,若数据修改指令的表项类型为普通表项,第一节点31则根据数据修改指令生成第二重做日志存储在日志缓存区,第二重做日志中携带有用于指示表项类型的普通表项标签,第二重做日志用于指示普通表项中普通数据的变化情况;然后,第一节点31根据普通表项标签在日志缓存区获取第二重做日志,并将第二重做日志写入第一节点31的磁盘中,同时,第一节点31还可以将日志缓存区的第二重做日志发送至第二节点32,以使得第二节点32根据第二重做日志同步第二节点32内普通表项的普通数据。
进一步的,如图10所示,该缓存内还可以存储用于临时任务的数据的临时表项,由于这些数据的稳定性较低,因此,这些数据既不要求写入磁盘,也不要求与第二节点32进行同步。若数据修改指令的表项类型为临时表项,第一节点31则根据数据修改指令生直接修改临时表项内的数据即可。
本发明的实施例提供一种数据同步系统,在各个节点内设有用于存储同步数据的复制表项,因此,当第一节点接收到用户发起的数据修改指令后,根据数据修改指令中的表项标识确定数据修改指令的表项类型,若数据修改指令的表项类型为该复制表项,第一节点则直接生成携带有复制表项标签的第一重做日志,并发送至第二节点以使得第二节点根据第一重做日志进行数据同步,在上述过程中,由于确定了数据修改指令的表项类型为该复制表项,因此,无需像现有技术中在处理针对普通表的数据修改指令时,既需要生成重做日志,还需要将修改后的数据写入磁盘,进而造成IO资源的浪费,也避免现有技术中处理针对临时表的数据修改指令时,不能生成重作日志,进而无法与第二节点的数据同步的问题,同时,由于第一节点在生成的第一重做日志携带有复制表项标签,因此,第一节点可以直接提取携带有复制表项标签的第一重做日志发送给第二节点,以便第二节点根据第一重做日志进行数据同步,避免了现有技术中由于不区分表项标签而导致第一节点对所有重做日志都写入磁盘,占用过多IO资源的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种数据同步方法,其特征在于,包括:
第一节点接收用户发起的数据修改指令,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;
所述第一节点根据所述表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;
若所述数据修改指令的表项类型为用于存储同步数据的复制表项,所述第一节点则根据所述数据修改指令生成第一重做日志,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;
所述第一节点将所述第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据,所述第二节点为对所述第一节点的数据进行备份的节点。
2.根据权利要求1所述的方法,其特征在于,所述第一节点中还设有用于存储普通数据的普通表项,其中,
在所述第一节点根据所述表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型之后,还包括:
若所述数据修改指令的表项类型为所述普通表项,所述第一节点则根据所述数据修改指令生成第二重做日志,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况;
所述第一节点根据所述普通表项标签获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘中。
3.根据权利要求2所述的方法,其特征在于,在所述第一节点则根据所述数据修改指令生成第二重做日志之后,还包括:
若所述第二重做日志丢失,所述第一节点则从所述磁盘中获取已存储的所述第二重做日志;
所述第一节点将所述第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述第一节点则根据所述数据修改指令生成第一重做日志之后,还包括:
若所述第一重做日志丢失,所述第一节点则获取所述第二节点发送的基线请求,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;
所述第一节点根据所述基线请求,将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在第一节点接收用户发起的数据修改指令之前,还包括
所述第一节点在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘内的数据。
6.一种节点,其特征在于,所述节点中设有用于存储同步数据的复制表项,所述节点包括:
获取单元,用于接收用户发起的数据修改指令,所述数据修改指令至少包括待修改数据的表项标识,所述表项标识用于指示所述待修改数据所属的表项类型;
确定单元,用于根据所述获取单元中的表项标识以及预置的表项标识与表项类型的对应关系,确定所述数据修改指令的表项类型;
日志生成单元,用于若所述确定单元中所述数据修改指令的表项类型为所述复制表项,则根据所述获取单元中的数据修改指令生成第一重做日志,所述第一重做日志中携带有用于指示表项类型的复制表项标签,所述第一重做日志用于指示复制表项中同步数据的变化情况;
日志发送单元,用于将所述日志生成单元中的第一重做日志发送至第二节点,以使得所述第二节点根据所述复制表项标签和所述第一重做日志同步第二节点内复制表项的同步数据,所述第二节点为对所述第一节点的数据进行备份的节点。
7.根据权利要求6所述的节点,其特征在于,所述节点还包括日志提取单元,其中,
所述日志生成单元,还用于若所述数据修改指令的表项类型为普通表项,则根据所述数据修改指令生成第二重做日志,所述第二重做日志中携带有用于指示表项类型的普通表项标签,所述第二重做日志用于指示普通表项中普通数据的变化情况,所述节点中还设有用于存储普通数据的普通表项;
所述日志提取单元,用于根据所述普通表项标签获取所述第二重做日志,并将所述第二重做日志写入所述第一节点的磁盘中。
8.根据权利要求7所述的节点,其特征在于,
所述日志提取单元,还用于若所述第二重做日志丢失,则从所述磁盘中获取已存储的所述第二重做日志;
所述日志发送单元,还用于将所述第二重做日志发送至所述第二节点,以使得所述第二节点根据所述第二重做日志中的普通表项标签和所述第二重做日志同步第二节点内普通表项中的普通数据。
9.根据权利要求6至8中任一项所述节点,其特征在于,
所述获取单元,还用于若所述第一重做日志丢失,则获取所述第二节点发送的基线请求,所述基线请求用于指示对所述第一节点中的复制表项进行在线基线复制;
所述日志发送单元,还用于根据所述基线请求,将所述第一节点中的复制表项发送至所述第二节点,以使得所述第二节点将所述第二节点内的复制表项替换为所述第一节点发送的复制表项。
10.根据权利要求6至9中任一项所述节点,其特征在于,所述节点还包括:
表项建立单元,用于在所述第一节点内建立所述复制表项,所述复制表项用于存储携带有表项标识为复制表项的同步数据,所述同步数据为需要与所述第二节点同步且不需要写入所述第一节点的磁盘内的数据。
11.一种数据同步系统,其特征在于,所述系统包括如权利要求6至10中任一项所述的第一节点,以及对所述第一节点的数据进行备份的第二节点。
CN201410747452.6A 2014-12-09 2014-12-09 一种数据同步方法、装置及系统 Active CN105740248B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410747452.6A CN105740248B (zh) 2014-12-09 2014-12-09 一种数据同步方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410747452.6A CN105740248B (zh) 2014-12-09 2014-12-09 一种数据同步方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105740248A true CN105740248A (zh) 2016-07-06
CN105740248B CN105740248B (zh) 2019-11-12

Family

ID=56237149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410747452.6A Active CN105740248B (zh) 2014-12-09 2014-12-09 一种数据同步方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105740248B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197658A (zh) * 2018-01-11 2018-06-22 阿里巴巴集团控股有限公司 图像标注信息处理方法、装置、服务器及系统
CN108268517A (zh) * 2016-12-30 2018-07-10 希姆通信息技术(上海)有限公司 数据库中标签的管理方法及系统
CN109271447A (zh) * 2018-09-04 2019-01-25 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备和存储介质
CN109918231A (zh) * 2019-02-28 2019-06-21 上海达梦数据库有限公司 数据重整的异常修复方法、装置、设备和存储介质
CN111309740A (zh) * 2020-01-16 2020-06-19 中国建设银行股份有限公司 一种数据处理的方法、装置、设备及存储介质
WO2020233185A1 (zh) * 2019-05-21 2020-11-26 华为技术有限公司 一种信息同步的方法及装置
CN115114370A (zh) * 2022-01-20 2022-09-27 腾讯科技(深圳)有限公司 主从数据库的同步方法、装置、电子设备和存储介质
CN115484203A (zh) * 2022-09-14 2022-12-16 杭州云合智网技术有限公司 一种路由表项操作方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220935A1 (en) * 2002-05-21 2003-11-27 Vivian Stephen J. Method of logical database snapshot for log-based replication
CN102917020A (zh) * 2011-09-24 2013-02-06 国网电力科学研究院 一种基于数据包的移动终端与业务系统数据同步的方法
CN103514223A (zh) * 2012-06-28 2014-01-15 阿里巴巴集团控股有限公司 一种数据仓库数据同步方法和系统
CN103699638A (zh) * 2013-12-23 2014-04-02 国云科技股份有限公司 一种基于配置参数实现跨数据库类型同步数据的方法
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030220935A1 (en) * 2002-05-21 2003-11-27 Vivian Stephen J. Method of logical database snapshot for log-based replication
CN102917020A (zh) * 2011-09-24 2013-02-06 国网电力科学研究院 一种基于数据包的移动终端与业务系统数据同步的方法
CN103514223A (zh) * 2012-06-28 2014-01-15 阿里巴巴集团控股有限公司 一种数据仓库数据同步方法和系统
CN103699638A (zh) * 2013-12-23 2014-04-02 国云科技股份有限公司 一种基于配置参数实现跨数据库类型同步数据的方法
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268517A (zh) * 2016-12-30 2018-07-10 希姆通信息技术(上海)有限公司 数据库中标签的管理方法及系统
CN108197658A (zh) * 2018-01-11 2018-06-22 阿里巴巴集团控股有限公司 图像标注信息处理方法、装置、服务器及系统
CN109271447A (zh) * 2018-09-04 2019-01-25 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备和存储介质
CN109918231A (zh) * 2019-02-28 2019-06-21 上海达梦数据库有限公司 数据重整的异常修复方法、装置、设备和存储介质
CN109918231B (zh) * 2019-02-28 2021-02-26 上海达梦数据库有限公司 数据重整的异常修复方法、装置、设备和存储介质
WO2020233185A1 (zh) * 2019-05-21 2020-11-26 华为技术有限公司 一种信息同步的方法及装置
US11165864B2 (en) 2019-05-21 2021-11-02 Huawei Technologies Co., Ltd. Information synchronization method and apparatus
CN111309740A (zh) * 2020-01-16 2020-06-19 中国建设银行股份有限公司 一种数据处理的方法、装置、设备及存储介质
CN115114370A (zh) * 2022-01-20 2022-09-27 腾讯科技(深圳)有限公司 主从数据库的同步方法、装置、电子设备和存储介质
CN115114370B (zh) * 2022-01-20 2023-06-13 腾讯科技(深圳)有限公司 主从数据库的同步方法、装置、电子设备和存储介质
CN115484203A (zh) * 2022-09-14 2022-12-16 杭州云合智网技术有限公司 一种路由表项操作方法、装置、设备及存储介质
CN115484203B (zh) * 2022-09-14 2024-05-24 云合智网(上海)技术有限公司 一种路由表项操作方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105740248B (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN105740248A (zh) 一种数据同步方法、装置及系统
CN102098342B (zh) 一种基于事务级的数据同步方法、装置及系统
CN103268318B (zh) 一种强一致性的分布式键值数据库系统及其读写方法
CN103023879B (zh) 一种基于高速缓存的数据中心间广域数据同步方法
CN102265277B (zh) 数据存储系统的操作方法和装置
CN103379159B (zh) 一种分布式Web站点数据同步的方法
CN102955845B (zh) 数据访问方法、装置与分布式数据库系统
JP6086463B2 (ja) ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム
CN104135539A (zh) 数据存储方法、sdn控制器和分布式网络存储系统
CN103744906A (zh) 一种数据同步系统、方法及装置
CN102710763B (zh) 一种分布式缓存池化、分片及故障转移的方法及系统
CN106301938A (zh) 一种高可用性和强一致性的数据库集群系统及其节点管理方法
CN104572689A (zh) 数据同步方法、装置及系统
CN105187464A (zh) 一种分布式存储系统中的数据同步方法、装置及系统
CN106953910A (zh) 一种Hadoop计算存储分离方法
CN104050276A (zh) 一种分布式数据库的缓存处理方法及系统
CN103209210A (zh) 一种提高基于纠删码的存储集群恢复性能的方法
WO2014135011A1 (zh) 数据库系统以及数据同步方法
CN103152390A (zh) 分布式存储系统的节点配置方法、装置、节点及系统
CN103902405A (zh) 一种准连续性数据复制方法及装置
CN102855314A (zh) 基于fpga的实时数据库备份系统及备份方法
CN108259569A (zh) 一种基于ipsan共享存储的无代理连续数据保护方法
CN102385624B (zh) 一种面向分布式文件系统的日志数据组织的方法
CN105634635A (zh) 一种共享rtc的方法、装置和系统
CN103281383B (zh) 一种面向分布式数据源的时序信息记录方法

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: 20200211

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 210012 HUAWEI Nanjing base, No. 101, software Avenue, Yuhuatai District, Nanjing City, Jiangsu Province, Jiangsu Province

Patentee before: Huawei Technologies Co.,Ltd.