CN111309799A - 数据合并的实现方法、装置、***及存储介质 - Google Patents
数据合并的实现方法、装置、***及存储介质 Download PDFInfo
- Publication number
- CN111309799A CN111309799A CN201811510709.0A CN201811510709A CN111309799A CN 111309799 A CN111309799 A CN 111309799A CN 201811510709 A CN201811510709 A CN 201811510709A CN 111309799 A CN111309799 A CN 111309799A
- Authority
- CN
- China
- Prior art keywords
- data
- copies
- copy
- operation time
- merging
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- 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/23—Updating
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据合并的实现方法、装置、***及存储介质,其方法包括:在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。本发明解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理。
Description
技术领域
本发明涉及分布式数据技术领域,尤其涉及一种分布式数据库副本间数据合并的实现方法、装置、***及存储介质。
背景技术
UDSF(Unstructured Data Storage network function,非结构化数据存储功能)作为5G核心网中存储非结构化数据的数据库网元,面临诸多性能需求:多业务共享访问库、极低的响应时延。因此,要求UDSF网元具备更高的***吞吐量、数据存储容量、极低的响应时延。
分布式数据库(DDB,Distributed Database)技术是解决5G核心网对数据存取高性能要求的必然技术手段。分布式数据库***中,副本的存取模式,可分为主备模式、主主模式。其中,在主备模式下,所有副本均可读,只有在选举出的主副本上进行写;在主主模式下,所有副本均可读、写。因此,主主访问模式,具备更高的访问性能。但主主模式下,必须解决所引入的新的场景问题:
主主模式下,副本自身日志缓冲区溢出时,导致其它副本无法读取连续日志,而无法应用后续日志,造成副本间数据不一致;
主主模式下,同一数据在多个副本上并发修改,副本间应用日志时,发现被修改数据最近操作时间与日志中携带时间不一,从而无法应用日志。
发明内容
本发明的主要目的在于提供一种分布式数据库副本间数据合并的实现方法、装置、***及存储介质,以解决分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题,实现副本间数据的一致性。
为实现上述目的,本发明提供的一种数据合并的实现方法,所述方法应用于分布式数据库***,所述方法包括:
在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
可选地,所述在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间的步骤之前还包括:
在分布式数据库处于主主工作模式进行副本存取时,检测是否存在副本自身日志缓冲区溢出,导致其它副本无法读取连续日志;
若是,则检测到多个副本间数据不一致。
可选地,所述在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间的步骤之前还包括:
在分布式数据库处于主主工作模式进行副本存取时,若同一数据在多个副本上并发修改,并在副本间应用日志时,检测被修改数据最近操作时间与日志中携带时间是否一致,若不一致,则检测到多个副本间数据不一致。
可选地,所述基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致的步骤中包括:
若多个副本均发生数据更新,则发起双向数据合并。
可选地,所述方法还包括:
在接收到删除请求或应用其它副本的删除操作日志,以删除当前副本上的数据时,将当前副本上被删除数据的主键及删除操作时间,保存于预设的主键存储队列。
可选地,所述方法还包括:
在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从所述主键存储队列中删除相应的队列元素。
可选地,所述方法还包括:
在副本应用增加操作日志时,使用待新增数据的主键查询所述主键存储队列;
如果所述主键存储队列中不存在对应待新增数据的删除操作记录,则在当前副本中***对应的待新增数据;
否则,比较应用的增加操作日志中携带的增加操作时间和所述主键存储队列中保存的删除操作时间,若前者大于后者,则***对应的待新增数据;若前者不大于后者,则不***对应的待新增数据。
可选地,所述方法还包括:
在副本应用修改操作日志时,比较应用的修改操作日志中携带的数据被修改的操作时间和被修改数据的最近操作时间;
若被修改数据的最近操作时间不等于修改操作日志中携带的数据被修改的操作时间,则针对该条数据发起数据合并操作。
可选地,所述方法还包括:
对副本间数据进行恢复处理或在副本上进行主键存储队列中信息的***处理。
可选地,所述方法还包括:
若检测到存储主键及删除操作时间的缓存空间使用完毕,则释放所述主键存储队列中所保存删除操作时间最老的队列元素所占空间。
本发明实施例还提出一种数据合并的实现装置,包括:
比较模块,用于在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
保存模块,用于根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
合并操作模块,用于基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
本发明实施例还提出一种数据合并的实现***,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据合并的实现方法的步骤。
本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据合并的实现方法的步骤。
本发明实施例提出的一种数据合并的实现方法、装置、***及存储介质,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
附图说明
图1是本发明数据合并的实现方法第一实施例的流程示意图;
图2是本发明数据合并的实现方法第二实施例的流程示意图;
图3是本发明数据合并的实现方法第三实施例的流程示意图;
图4是本发明数据合并的实现方法第四实施例的流程示意图;
图5是本发明数据合并的实现方法第五实施例的流程示意图;
图6是本发明数据合并的实现方法第六实施例的流程示意图;
图7是本发明数据合并的实现方法第七实施例的流程示意图;
图8是本发明实施例运行环境涉及的***架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
由于现有技术中,分布式数据库在主主模式下存取副本数据时,若副本自身日志缓冲区溢出,会导致其它副本无法读取连续日志,而无法应用后续日志,造成副本间数据不一致;或者,同一数据在多个副本上并发修改,副本间应用日志时,由于被修改数据最近操作时间与日志中携带时间不一,从而导致数据更新冲突而无法应用日志,也会造成副本间数据不一致。
本发明提供一种解决方案,可以解决分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题,实现副本间数据的一致性。
具体地,如图1所示,本发明第一实施例提出一种数据合并的实现方法,所述方法应用于分布式数据库***,所述方法包括:
步骤S101,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
本实施例方案涉及分布式数据库中副本间数据的复制技术。在分布式***中,通过日志复制,以保证多个副本间数据的一致性。
其中,本实施例方案应用场景为副本存取模式的主主工作模式,主主工作模式下,所有副本均可读、写。因此,主主访问模式,具备更高的访问性能。
由于现有技术中,在副本存取模式为主主工作模式下,当日志无法接续或者多主访问导致数据更新冲突,造成副本间数据不一致。本发明实施例提出一种解决冲突的数据合并方法,实现副本间数据的一致性。
具体地,在分布式数据库处于主主工作模式进行副本存取时,若检测到多个副本间数据不一致,则比较不同副本上数据最近操作的时间。
步骤S102,根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
步骤S103,基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果。基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
举例如下:在日志缓冲区溢出导致日志不连续,或者副本间无法进行日志应用时,则发起副本间数据合并;如果两个副本均发生数据更新,则发起双向数据合并。
其中,副本间数据的相互合并操作不仅可以包括:数据库中的单条记录发生合并,还可以是整个分布式数据库***的数据合并。
由于分布式数据库在主主模式下存取副本数据时,若副本自身日志缓冲区溢出,会导致其它副本无法读取连续日志,而无法应用后续日志,造成副本间数据不一致;或者,同一数据在多个副本上并发修改,副本间应用日志时,由于被修改数据最近操作时间与日志中携带时间不一,从而导致数据更新冲突而无法应用日志,也会造成副本间数据不一致。
本实施例通过上述方案,在上述场景发生时,比较不同副本上数据最近操作的时间,保留数据最后更新的结果,使得多副本上数据并发操作的最终结果不会丢失,通过副本间数据的相互合并,使得副本间数据保持一致。
如图2所示,本发明第二实施例提出一种数据合并的实现方法,基于上述图1所示的实施例,在上述步骤S101,所述在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间的步骤之前还包括:
步骤S100,在分布式数据库处于主主工作模式进行副本存取时,检测多个副本间数据是否不一致。
相比上述图1所示的实施例,本实施例还包括检测多个副本间数据是否不一致的方案。其中,根据不同的应用场景,可以采用如下方案来检测多个副本间数据是否不一致。
作为一种实现方式,在分布式数据库处于主主工作模式进行副本存取时,检测是否存在副本自身日志缓冲区溢出,导致其它副本无法读取连续日志;
若是,则检测到多个副本间数据不一致。
作为另一种实现方式,在分布式数据库处于主主工作模式进行副本存取时,若同一数据在多个副本上并发修改,并在副本间应用日志时,检测被修改数据最近操作时间与日志中携带时间是否一致,若不一致,则检测到多个副本间数据不一致。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取时,检测多个副本间数据是否不一致,在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。
如图3所示,本发明第三实施例提出一种数据合并的实现方法,基于上述图1或图2所示的实施例,所述方法还包括:
步骤S104,在接收到删除请求或应用其它副本的删除操作日志,以删除当前副本上的数据时,将当前副本上被删除数据的主键及删除操作时间,保存于预设的主键存储队列。
相比上述图1或图2所示的实施例,本实施例还包括:删除副本数据的方案。
具体地,本实施例预先设置有一主键存储队列(DEL_PK_QUE,Deleted dataPrimary Key Queue),该主键存储队列用于保存因删除操作请求或应用删除操作日志而被删除数据的主键及删除操作时间。
在本实施例中,在收到删除请求或应用其它副本的删除操作日志,以删除副本上的数据时,将被删除数据的主键及删除操作时间,保存于DEL_PK_QUE中。
其中,日志包含操作时间戳、操作类别、操作的key及value、对于非增加操作的日志,还包含数据最近一次***作的时间戳。
以两个副本(Replica_1---副本1,Replica_2---副本2)为例,进行副本数据删除操作或者应用删除操作日志,存储数据的主键及操作时间的具体过程如下:
步骤1,副本1收到删除数据的请求;
步骤2,副本1从数据库中删除数据;
步骤3,副本1将删除数据的主键及删除操作时间***DEL_PK_QUE中;
步骤4,副本1产生本次删除操作的日志(日志包含如下信息:本次操作时间戳、操作类别、操作的key及value,对于非增加操作的日志,还包含数据最近一次***作的时间戳);
步骤5,副本1向删除请求发起者发送删除操作响应;
步骤6,副本1本次删除操作的日志被同步到副本2;
步骤7,副本2应用删除操作日志;只有待删数据存在且日志携带删除操作时间大于数据最近操作时间,才删除数据;
步骤8,副本2上数据被删除,则将删除数据的主键及删除操作时间***DEL_PK_QUE中。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与其他操作的合并处理,保证了副本间数据的一致性。
如图4所示,本发明第四实施例提出一种数据合并的实现方法,基于上述图3所示的实施例,所述方法还包括:
步骤S105,在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从所述主键存储队列中删除相应的队列元素。
相比上述图3所示的实施例,本实施例还包括:增加新数据的操作。
具体地,在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从DEL_PK_QUE中删除可能存在的队列元素。
还是以两个副本(Replica_1---副本1,Replica_2---副本2)为例,进行副本增加数据操作、应用增加操作日志,删除、查询DEL_PK_QUE处理的具体过程如下:
步骤1.副本1收到增加数据请求;
步骤2.副本1将数据***数据库;
步骤3.副本1使用数据的主键从DEL_PK_QUE中删除可能存在的删除信息(性能考虑,此步骤可以忽略);
步骤4.副本1产生本次增加操作的日志;
步骤5.副本1向增加请求发起者发送增加操作响应;
步骤6.副本1本次增加操作的日志被同步到副本2;
步骤7.副本2应用增加操作日志;查询DEL_PK_QUE,如果存在删除操作信息且删除操作时间大于日志携带增加数据操作时间,则不***数据,其它情况,***数据;
步骤8.副本2上数据被***,且DEL_PK_QUE中存在删除操作信息,则从DEL_PK_QUE中删除***数据的删除信息(性能考虑,此步骤可以忽略)。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增加操作的合并处理,保证了副本间数据的一致性。
如图5所示,本发明第五实施例提出一种数据合并的实现方法,基于上述图4所示的实施例,所述方法还包括:
步骤S106,在副本应用增加操作日志时,使用待新增数据的主键查询所述主键存储队列;如果所述主键存储队列中不存在对应待新增数据的删除操作记录,则在当前副本中***对应的待新增数据;否则,比较应用的增加操作日志中携带的增加操作时间和所述主键存储队列中保存的删除操作时间,若前者大于后者,则***对应的待新增数据;若前者不大于后者,则不***对应的待新增数据。
相比上述实施例,本实施例还包括:应用增加操作日志的操作。
具体地,在副本应用增加操作日志时,使用待新增数据的主键查询DEL_PK_QUE,如果不存在对应待新增数据的删除操作,则在当前副本中***新增数据;否则,比较日志中携带的增加操作时间和DEL_PK_QUE中保存的删除操作时间,若前者大于后者,则***新增数据;若前者不大于后者,则不***新增数据。
还是以两个副本(Replica_1---副本1,Replica_2---副本2)为例,进行副本增加数据操作、应用增加操作日志,删除、查询DEL_PK_QUE处理的具体过程如下:
步骤1.副本1收到增加数据请求;
步骤2.副本1将数据***数据库;
步骤3.副本1使用数据的主键从DEL_PK_QUE中删除可能存在的删除信息(性能考虑,此步骤可以忽略);
步骤4.副本1产生本次增加操作的日志;
步骤5.副本1向增加请求发起者发送增加操作响应;
步骤6.副本1本次增加操作的日志被同步到副本2;
步骤7.副本2应用增加操作日志;查询DEL_PK_QUE,如果存在删除操作信息且删除操作时间大于日志携带增加数据操作时间,则不***数据,其它情况,***数据;
步骤8.副本2上数据被***,且DEL_PK_QUE中存在删除操作信息,则从DEL_PK_QUE中删除***数据的删除信息(性能考虑,此步骤可以忽略)。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
如图6所示,本发明第六实施例提出一种数据合并的实现方法,基于上述图5所示的实施例,所述方法还包括:
步骤S107,在副本应用修改操作日志时,比较应用的修改操作日志中携带的数据被修改的操作时间和被修改数据的最近操作时间;若被修改数据的最近操作时间不等于修改操作日志中携带的数据被修改的操作时间,则针对该条数据发起数据合并操作。
相比上述图5所示的实施例,本实施例还包括应用修改操作日志的方案。
具体地,在副本应用修改操作日志时,比较发现被修改数据的最近操作时间不等于日志中携带的数据被修改前的操作时间,则针对该条数据发起数据合并。
还是以两个副本(Replica_1---副本1,Replica_2---副本2)为例,进行副本应用修改操作日志,触发单条数据合并处理的具体过程如下:
步骤1.副本2上产生了修改操作的日志;
步骤2.副本2上的修改日志被同步到副本1;
步骤3.副本1上应用日志发生冲突:修改日志中携带的副本2上数据被修改前的操作时间不等于副本1上该数据最近一次的操作时间;
步骤4.副本1向副本2读取日志应用冲突涉及修改的数据;
步骤5.副本1收到副本2上读取数据;
步骤6.比较两个副本中数据的操作时间,选择操作时间最新的数据作为修改结果;
步骤7.当前日志应用冲突解决,使用当前日志继续读取副本2的后续日志;
步骤8.副本1与副本2间进入正常的日志复制应用流程。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
此外,在另一实施例中,本发明实施例方案还可以进行副本间数据恢复处理。
副本间数据恢复处理的具体过程可以举例如下:
步骤1.副本1向副本2发送恢复DEL_PK_QUE中所有数据的请求;
步骤2.副本1收到副本2发送的读取DEL_PK_QUE中数据的响应;
步骤3.副本1将步骤2中返回的删除操作信息插DEL_PK_QUE中;
步骤4.副本1向副本2发送恢复所有数据请求,即从副本2中该副本的所有数据;
步骤5.副本1收到副本2发送的若干读取数据的响应;
步骤6.副本1将步骤5中返回的数据***数据库中;
步骤7.副本1数据恢复完成,向副本2读取数据恢复期间可能产生的日志;
步骤8.副本1收到副本2发送的若干读取日志的响应;
步骤9.副本1基于DEL_PK_QUE中存储的删除操作信息应用步骤8中返回的日志(操作日志应用参考图1图2图3);
步骤10.副本1与副本2间进入正常的日志复制应用流程。
此外,在另一实施例中,本发明实施例方案还可以基于DEL_PK_QUE中删除信息,进行数据合并处理。
副本间基于DEL_PK_QUE中删除信息,进行数据合并的处理的具体过程可以举例如下:
步骤1.副本1向副本2发起读取所有数据的请求;
步骤2.副本1收到若干副本2发送的读取数据的响应;
步骤3.对于步骤2中返回的每条数据记录,进行如下合并处理;
步骤3.1数据在副本1中存在,则比较两个副本中数据的操作时间,选择操作时间最新的数据为记录内容;
步骤3.2数据在副本1中不存在,查询DEL_PK_QUE,如果存在删除操作信息且删除操作时间大于副本2中数据的操作时间,则不***数据,其它情况,***数据;
步骤3.3基于3.1、3.2中的执行结果产生操作日志;
步骤4.完成副本2上所有数据的合并处理,则向副本2读取数据合并期间产生的日志;
步骤5.副本1收到副本2发送的若干读取日志的响应;
步骤6.副本1基于DEL_PK_QUE中存储的删除操作信息应用步骤3.3中返回的日志;
步骤7.副本1与副本2间进入正常的日志复制应用流程。
此外,在另一实施例中,本发明实施例方案还可以实现DEL_PK_QUE的***处理。
DEL_PK_QUE的***处理具体过程可以举例如下:
步骤1.往DEL_PK_QUE中***删除操作信息:主键及删除操作时间;
步骤2.按如下步骤进行***处理;
步骤2.1存储主键及操作时间信息的缓存区有空闲空间,则分配空间存储主键及删除操作时间;
步骤2.2存储主键及操作时间信息的缓存区有无空闲空间,则从DEL_PK_QUE中释放所保存删除操作时间最老的队列元素所占资源,而后分配空间存储主键及删除操作时间;
步骤2.3***的删除操作信息在DEL_PK_QUE中不存在,则直接***DEL_PK_QUE;
步骤2.3***的删除操作信息在DEL_PK_QUE中已存在,则更新对应主键的删除操作时间。
如图7所示,本发明第七实施例提出一种数据合并的实现方法,基于上述图6所示的实施例,所述方法还包括:
步骤S108,若检测到存储主键及删除操作时间的缓存空间使用完毕,则释放所述主键存储队列中所保存删除操作时间最老的队列元素所占空间。
如前所述,DEL_PK_QUE中保存因删除操作请求或应用删除操作日志而被删除数据的主键及删除操作时间。
在本实施例中,存储主键及操作时间的缓存空间使用完毕,则释放DEL_PK_QUE中所保存删除操作时间最老的队列元素所占空间。
本实施例通过上述方案,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。此外,在存储主键及操作时间的缓存空间使用完毕时,释放DEL_PK_QUE中所保存删除操作时间最老的队列元素所占空间,以节省存储资源。
需要说明的是,上述各实施例根据实际情况,可以相互组合实施,在此不再赘述。
此外,本发明实施例还提出一种数据合并的实现装置,包括:
比较模块,用于在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
保存模块,用于根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
合并操作模块,用于基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致
进一步地,上述合并操作模块,还用于在接收到删除请求或应用其它副本的删除操作日志,以删除当前副本上的数据时,将当前副本上被删除数据的主键及删除操作时间,保存于预设的主键存储队列。
进一步地,上述合并操作模块,还用于在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从所述主键存储队列中删除相应的队列元素。
进一步地,上述合并操作模块,还用于在副本应用增加操作日志时,使用待新增数据的主键查询所述主键存储队列;
如果所述主键存储队列中不存在对应待新增数据的删除操作记录,则在当前副本中***对应的待新增数据;
否则,比较应用的增加操作日志中携带的增加操作时间和所述主键存储队列中保存的删除操作时间,若前者大于后者,则***对应的待新增数据;若前者不大于后者,则不***对应的待新增数据。
进一步地,上述合并操作模块,还用于在副本应用修改操作日志时,比较应用的修改操作日志中携带的数据被修改的操作时间和被修改数据的最近操作时间;
若被修改数据的最近操作时间不等于修改操作日志中携带的数据被修改的操作时间,则针对该条数据发起数据合并操作。
进一步地,上述合并操作模块,还用于若检测到存储主键及删除操作时间的缓存空间使用完毕,则释放所述主键存储队列中所保存删除操作时间最老的队列元素所占空间。
本实施例实现副本间数据合并的原理请参照上述各实施例,在此不再赘述。
本实施例在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
此外,本发明实施例还提出一种数据合并的实现***,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据合并的实现方法的步骤。
具体地,如图8所示,本实施例***可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图8中示出的***结构并不构成对平台的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及数据合并的实现程序。
在图8所示的***中,网络接口1004主要用于连接网络服务器,与网络服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,并执行以下操作:
在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
在接收到删除请求或应用其它副本的删除操作日志,以删除当前副本上的数据时,将当前副本上被删除数据的主键及删除操作时间,保存于预设的主键存储队列。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从所述主键存储队列中删除相应的队列元素。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
在副本应用增加操作日志时,使用待新增数据的主键查询所述主键存储队列;
如果所述主键存储队列中不存在对应待新增数据的删除操作记录,则在当前副本中***对应的待新增数据;
否则,比较应用的增加操作日志中携带的增加操作时间和所述主键存储队列中保存的删除操作时间,若前者大于后者,则***对应的待新增数据;若前者不大于后者,则不***对应的待新增数据。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
在副本应用修改操作日志时,比较应用的修改操作日志中携带的数据被修改的操作时间和被修改数据的最近操作时间;
若被修改数据的最近操作时间不等于修改操作日志中携带的数据被修改的操作时间,则针对该条数据发起数据合并操作。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
对副本间数据进行恢复处理或在副本上进行主键存储队列中信息的***处理。
进一步地,处理器1001可以用于调用存储器1005中存储的数据合并的实现程序,还执行以下操作:
若检测到存储主键及删除操作时间的缓存空间使用完毕,则释放所述主键存储队列中所保存删除操作时间最老的队列元素所占空间。
本实施例实现副本间数据合并的原理请参照上述各实施例,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据合并的实现方法的步骤。
本实施例实现副本间数据合并的原理请参照上述各实施例,在此不再赘述。
相比现有技术,本发明实施例提出的一种数据合并的实现方法、装置、***及存储介质,在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致,由此,通过日志复制,解决了分布式***中,当日志无法接续或者多主访问导致数据更新冲突的技术问题。此外,通过将被删除数据的主键保存于预设的主键删除队列中,解决数据合并发生时,删除操作与增、改操作的合并处理,保证了副本间数据的一致性。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种数据合并的实现方法,其特征在于,所述方法应用于分布式数据库***,所述方法包括:
在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
2.根据权利要求1所述的数据合并的实现方法,其特征在于,所述在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间的步骤之前还包括:
在分布式数据库处于主主工作模式进行副本存取时,检测是否存在副本自身日志缓冲区溢出,导致其它副本无法读取连续日志;
若是,则检测到多个副本间数据不一致。
3.根据权利要求1所述的数据合并的实现方法,其特征在于,所述在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间的步骤之前还包括:
在分布式数据库处于主主工作模式进行副本存取时,若同一数据在多个副本上并发修改,并在副本间应用日志时,检测被修改数据最近操作时间与日志中携带时间是否一致,若不一致,则检测到多个副本间数据不一致。
4.根据权利要求1所述的数据合并的实现方法,其特征在于,所述基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致的步骤中包括:
若多个副本均发生数据更新,则发起双向数据合并。
5.根据权利要求1所述的数据合并的实现方法,其特征在于,所述方法还包括:
在接收到删除请求或应用其它副本的删除操作日志,以删除当前副本上的数据时,将当前副本上被删除数据的主键及删除操作时间,保存于预设的主键存储队列。
6.根据权利要求5所述的数据合并的实现方法,其特征在于,所述方法还包括:
在接收到增加数据请求,以在副本上增加新的数据时,使用新增数据的主键从所述主键存储队列中删除相应的队列元素。
7.根据权利要求6所述的数据合并的实现方法,其特征在于,所述方法还包括:
在副本应用增加操作日志时,使用待新增数据的主键查询所述主键存储队列;
如果所述主键存储队列中不存在对应待新增数据的删除操作记录,则在当前副本中***对应的待新增数据;
否则,比较应用的增加操作日志中携带的增加操作时间和所述主键存储队列中保存的删除操作时间,若前者大于后者,则***对应的待新增数据;若前者不大于后者,则不***对应的待新增数据。
8.根据权利要求5-7中任一项所述的数据合并的实现方法,其特征在于,所述方法还包括:
在副本应用修改操作日志时,比较应用的修改操作日志中携带的数据被修改的操作时间和被修改数据的最近操作时间;
若被修改数据的最近操作时间不等于修改操作日志中携带的数据被修改的操作时间,则针对该条数据发起数据合并操作。
9.根据权利要求8所述的数据合并的实现方法,其特征在于,所述方法还包括:
对副本间数据进行恢复处理或在副本上进行主键存储队列中信息的***处理。
10.根据权利要求9所述的数据合并的实现方法,其特征在于,所述方法还包括:
若检测到存储主键及删除操作时间的缓存空间使用完毕,则释放所述主键存储队列中所保存删除操作时间最老的队列元素所占空间。
11.一种数据合并的实现装置,其特征在于,包括:
比较模块,用于在分布式数据库处于主主工作模式进行副本存取,并在检测到多个副本间数据不一致时,比较不同副本上数据最近操作的时间;
保存模块,用于根据不同副本上数据最近操作的时间,保留各副本上数据的最后更新结果;
合并操作模块,用于基于各副本上数据的最后更新结果,进行各副本间数据的相互合并操作,使得各副本间数据保持一致。
12.一种数据合并的实现***,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-10中任一项所述的数据合并的实现方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一项所述的数据合并的实现方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811510709.0A CN111309799A (zh) | 2018-12-11 | 2018-12-11 | 数据合并的实现方法、装置、***及存储介质 |
PCT/CN2019/124491 WO2020119709A1 (zh) | 2018-12-11 | 2019-12-11 | 数据合并的实现方法、装置、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811510709.0A CN111309799A (zh) | 2018-12-11 | 2018-12-11 | 数据合并的实现方法、装置、***及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309799A true CN111309799A (zh) | 2020-06-19 |
Family
ID=71075844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811510709.0A Withdrawn CN111309799A (zh) | 2018-12-11 | 2018-12-11 | 数据合并的实现方法、装置、***及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111309799A (zh) |
WO (1) | WO2020119709A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储***数据访问控制方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4284044A3 (en) | 2019-04-29 | 2024-02-21 | Telefonaktiebolaget LM Ericsson (publ) | Handling of multiple authentication procedures in 5g |
US11922026B2 (en) | 2022-02-16 | 2024-03-05 | T-Mobile Usa, Inc. | Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140324785A1 (en) * | 2013-04-30 | 2014-10-30 | Amazon Technologies, Inc. | Efficient read replicas |
CN105447046A (zh) * | 2014-09-02 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式***数据一致性处理方法、装置和*** |
CN108228678A (zh) * | 2016-12-22 | 2018-06-29 | 华为技术有限公司 | 一种多副本数据恢复方法及装置 |
CN108897822A (zh) * | 2018-06-21 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种数据更新方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357920B (zh) * | 2017-07-21 | 2020-05-22 | 北京奇艺世纪科技有限公司 | 一种增量式的多副本数据同步方法及*** |
-
2018
- 2018-12-11 CN CN201811510709.0A patent/CN111309799A/zh not_active Withdrawn
-
2019
- 2019-12-11 WO PCT/CN2019/124491 patent/WO2020119709A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140324785A1 (en) * | 2013-04-30 | 2014-10-30 | Amazon Technologies, Inc. | Efficient read replicas |
CN105447046A (zh) * | 2014-09-02 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种分布式***数据一致性处理方法、装置和*** |
CN108228678A (zh) * | 2016-12-22 | 2018-06-29 | 华为技术有限公司 | 一种多副本数据恢复方法及装置 |
CN108897822A (zh) * | 2018-06-21 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种数据更新方法、装置、设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储***数据访问控制方法及装置 |
CN117149097B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种分布式存储***数据访问控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020119709A1 (zh) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996421B2 (en) | Data storage method, data storage apparatus, and storage device | |
US10073649B2 (en) | Storing metadata | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
KR20110128846A (ko) | 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델 | |
CN108415986B (zh) | 一种数据处理方法、装置、***、介质和计算设备 | |
CN111125021B (zh) | 从异步远程***有效恢复文件***图像的一致视图的方法和*** | |
CN111309799A (zh) | 数据合并的实现方法、装置、***及存储介质 | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN113568566A (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN106528338B (zh) | 一种远程数据复制方法、存储设备及存储*** | |
CN110019527B (zh) | 从库读取方法、相关装置和设备 | |
US8886597B2 (en) | Synchronizing changes in a file system which are initiated by a storage device and a host device | |
CN108271420A (zh) | 管理文件的方法、文件***和服务器*** | |
US10685014B1 (en) | Method of sharing read-only data pages among transactions in a database management system | |
CN111078643B (zh) | 一种批量删除文件的方法、装置及电子设备 | |
CN108694209B (zh) | 基于对象的分布式索引方法和客户端 | |
CN116909490B (zh) | 数据处理方法、装置、存储***及计算机可读存储介质 | |
US11755425B1 (en) | Methods and systems for synchronous distributed data backup and metadata aggregation | |
CN112306956B (zh) | 用于元数据维护的方法、装置和计算机程序产品 | |
US11561958B2 (en) | Information processing device and information processing system | |
CN115826880B (zh) | 对象存储***的本地缓存方法、装置、***、介质及设备 | |
CN111984460B (zh) | 元数据的恢复方法及装置 | |
CN112860788B (zh) | 事务处理方法、装置、计算机***及可读存储介质 | |
CN111400302B (zh) | 连续存储数据的修改方法、装置和*** | |
JP2022082006A (ja) | ストレージ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200619 |
|
WW01 | Invention patent application withdrawn after publication |