CN114127707A - 用于处理写请求的系统、计算节点和方法 - Google Patents
用于处理写请求的系统、计算节点和方法 Download PDFInfo
- Publication number
- CN114127707A CN114127707A CN202080052186.9A CN202080052186A CN114127707A CN 114127707 A CN114127707 A CN 114127707A CN 202080052186 A CN202080052186 A CN 202080052186A CN 114127707 A CN114127707 A CN 114127707A
- Authority
- CN
- China
- Prior art keywords
- redo
- merged
- record
- records
- redo record
- 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
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- 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
- G06F16/2358—Change logging, detection, and notification
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- 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
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Abstract
本发明公开的计算节点包括处理器和存储指令的非瞬时性存储介质。所述处理器可执行所述指令。本发明还公开了一种方法和一种系统。所述方法包括:根据相同的数据位置标识符,选择包括与接收到的写请求对应的多个传统重做记录的子集;将所选子集中的所述多个传统重做记录合并为一个合并重做记录;将所述合并重做记录发送到目标节点进行处理。
Description
相关申请交叉引用
本申请要求于2019年10月1日提交的申请号为16/590,078、发明名称为“用于处理写请求的系统、计算节点和方法(SYSTEM,COMPUTING NODE AND METHOD FOR PROCESSINGWRITE REQUESTS)”的美国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明大体上涉及数据库领域,尤其涉及一种用于处理写请求的系统、计算节点和方法。
背景技术
在分布式在线交易处理(on-line transaction processing,OLTP)中,多个交易生成用于插入、更新或删除存储在数据库中的数据的请求。重做日志包括存储对数据库进行的所有更改的重做记录,因此在数据库损坏时充当数据库中数据的真实副本。因此,重做日志是恢复操作的关键结构。为了持续保持数据库中的数据与副本数据库(即数据库的副本)中的数据一致,需要在计算节点和主节点之间尽快处理和传输重做日志。
发明内容
本发明的目的是提供一种用于处理写请求的技术。
根据这一目的,本发明的一方面提供了一种计算节点。所述计算节点包括处理器和存储指令的非瞬时存储介质。所述处理器可执行所述指令以:接收用于修改数据库中的一个或多个页面的多个写请求;为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;将所述子集中的所述多个重做记录合并为一个合并重做记录;将所述合并重做记录发送到目标节点。
所述数据位置标识符可以包括页面标识符。所述数据位置标识符还可以包括用于标识空间的空间标识符,所述页面标识符可以标识所述空间内的页面。
所述多个重做记录中的每个重做记录可以包括各自的数据位置标识符和包括写数据的内容;所述合并重做记录可以包括所述相同的数据位置标识符的单个实例和所述子集中的所述多个重做记录的信息,其中,所述信息包括所述子集中的所述多个重做记录的内容但不包括所述子集中的所述多个重做记录的各自数据位置标识符。
所述合并重做记录还可以包括总长度值,指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度。
所述多个重做记录中的每个重做记录可以包括用于指示每个重做记录的类型的类型指示符;所述子集中包括在所述合并重做记录中的所述多个重做记录的信息可以包括所述子集中的所述多个重做记录的类型指示符。
所述多个重做记录中的每个重做记录可以包括各自的长度值,指示所述每个重做记录的内容的长度;所述子集中包括在所述合并重做记录中的所述多个重做记录的信息可以包括所述子集中的所述多个重做记录的各自长度值。
所述多个重做记录中的每个重做记录可以包括指示所述每个重做记录的类型的类型指示符、各自的数据位置标识符、各自的长度值和包括写数据的内容;所述合并重做记录可以包括所述相同的数据位置标识符的单个实例、指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度的总长度值以及多个段,其中,所述多个段中的每个段包括(i)所述类型指示符、(ii)各自的长度值和(iii)所述子集中的对应重做记录的内容,所述多个段中的每个段不包括所述对应重做记录的数据位置标识符。
所述指令可以在所述处理器上执行以:将所述子集中的第一重做记录的第一值和所述子集中的第二重做记录的第二值合并为包括在所述合并重做记录的一段中的合并值,其中,所述第一值表示对页面中的第一偏移的第一写操作,所述第二值表示对所述页面中的第二偏移的第二写操作,所述合并值表示所述第一写操作和所述第二写操作的合并。
所述指令可以在所述处理器上执行以:接收用于修改所述数据库中的一个或多个页面的其它写请求;为所述其它写请求生成其它重做记录;如果所述其它重做记录包括所述相同的数据位置标识符,并且如果已经合并到所述合并重做记录中的重做记录的数量小于可合并到所述合并重做记录中的重做记录的指定阈值数量,则将所述其它重做记录合并到所述合并重做记录中。
所述计算节点可以是用于处理写请求的主计算节点,所述目标节点可以是复制所述数据库所在的副本计算节点。
根据本发明的其它方面,提供了一种用于处理写请求的方法。所述方法包括:在计算节点处接收所述用于修改数据库中的一个或多个页面的多个写请求;在所述计算节点处为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;在所述计算节点处为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;在所述计算节点处将所述子集中的所述多个重做记录合并为一个合并重做记录;将所述合并重做记录从所述计算节点发送到目标节点。
所述数据位置标识符可以包括页面标识符。所述数据位置标识符还可以包括用于标识空间的空间标识符,所述页面标识符可以标识所述空间内的页面。
所述多个重做记录中的每个重做记录可以包括各自的数据位置标识符和包括写数据的内容;所述合并重做记录可以包括所述相同的数据位置标识符的单个实例和所述子集中的所述多个重做记录的信息,其中,所述信息包括所述子集中的所述多个重做记录的内容但不包括所述子集中的所述多个重做记录的各自数据位置标识符。
所述合并重做记录还可以包括总长度值,指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度。
所述多个重做记录中的每个重做记录可以包括用于指示所述每个重做记录的类型的类型指示符;所述子集中包括在所述合并重做记录中的所述多个重做记录的信息可以包括所述子集中的所述多个重做记录的类型指示符。
所述多个重做记录中的每个重做记录可以包括各自的长度值,指示所述每个重做记录的内容的长度;所述子集中包括在所述合并重做记录中的所述多个重做记录的信息可以包括所述子集中的所述多个重做记录的各自长度值。
所述多个重做记录中的每个重做记录可以包括指示所述每个重做记录的类型的类型指示符、各自的数据位置标识符、各自的长度值和包括写数据的内容;所述合并重做记录可以包括所述相同的数据位置标识符的单个实例、指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度的总长度值以及多个段,其中,所述多个段中的每个段包括(i)所述类型指示符、(ii)各自的长度值和(iii)所述子集中的对应重做记录的内容,所述多个段中的每个段不包括所述对应重做记录的数据位置标识符。
所述指令可以在所述处理器上执行以:将所述子集中的第一重做记录的第一值和所述子集中的第二重做记录的第二值合并为包括在所述合并重做记录的一段中的合并值,其中,所述第一值表示对页面中的第一偏移的第一写操作,所述第二值表示对所述页面中的第二偏移的第二写操作,所述合并值表示所述第一写操作和所述第二写操作的合并。
所述方法还可以包括:接收用于修改所述数据库中的一个或多个页面的其它写请求;为所述其它写请求生成其它重做记录;如果所述其它重做记录包括所述相同的数据位置标识符,并且如果已经合并到所述合并重做记录中的重做记录的数量小于可合并到所述合并重做记录中的重做记录的指定阈值数量,则将所述其它重做记录合并到所述合并重做记录中。
所述计算节点可以是用于处理写请求的主计算节点,所述目标节点可以是复制所述数据库所在的副本节点。所述在所述计算节点处将所述子集中的所述多个重做记录合并为一个合并重做记录还可以包括:接收包括第一数据位置标识符的第一重做记录;生成第一合并重做记录,其中,所述第一合并重做记录包括所述第一数据位置标识符和基于所述第一重做记录的第一段;接收包括第二数据位置标识符的第二重做记录;如果所述第一数据位置标识符与所述第二数据位置标识符相同,则通过根据所述第一重做记录将第二段添加到所述第一合并重做记录中并排除所述第二数据位置标识符,生成第二合并重做记录。
所述方法还可以包括:如果所述第一数据位置标识符与所述第二数据位置标识符不同,则生成新的合并重做记录,其中,所述新的合并重做记录包括所述第二数据位置标识符和基于所述第三重做记录的新段,所述新的合并重做记录不包括所述第一重做记录的信息。
根据本发明的其它方面,提供了一种用于处理多个写请求的系统。所述系统包括:数据库;计算节点,用于:接收所述用于修改数据库中的一个或多个页面的多个写请求;为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;将所述子集中的所述多个重做记录合并为一个合并重做记录;发送所述合并重做记录;目标节点,用于从所述计算节点接收所述合并重做记录。
本发明的实现方式都包括上述目的和/或方面中的至少一个,但不一定同时包括这些目的和方面。应当理解,本发明的一些方面源于试图实现上述目的,可能并不满足这一目的和/或可能满足本文未具体阐述的其它目的。
本发明实现方式的其它和/或可选特征、方面和优点将从以下描述、附图和所附权利要求书中变得显而易见。
附图说明
本发明的更多特征和优点将从以下结合附图的具体实施方式中变得显而易见。
图1为传统分布式数据库系统的示意图,并示出了重做日志在其中的传统处理方式。
图2A示出了为一个交易生成的传统重做记录的示意图的说明性示例。
图2B为传统重做日志的片段的示意图。
图3为适用于实现本发明技术的非限制性实施例的系统的示意图。
图4为本发明至少一个非限制性实施例提供的选定传统重做记录和合并重做记录的示意图。
图5为本发明至少一个非限制性实施例提供的用于处理写请求的方法的流程图。
图6为本发明至少一个其它非限制性实施例提供的用于生成图4的合并重做记录的方法的流程图。
图7示出了实现图6的方法时的传统重做记录和合并重做日志的非限制性示例。
应当理解,在整个附图和对应的描述中,相似的特征由相似的附图标记标识。此外,还应当理解,附图和随后的描述仅用于说明目的,并且这些公开内容并不限制权利要求书的范围。
具体实施方式
本发明的各方面旨在解决用于处理写请求的当前技术的至少一些问题。具体地,本发明描述了一种用于加快处理重做日志的系统、计算节点和方法。
图1为传统分布式数据库系统100的示意图,并示出了重做日志在其中的传统处理方式。传统系统100包括客户端110、主计算节点112、副本计算节点122和客户140。
主计算节点112包括或连接到主数据库114。主数据库114可以位于,例如,主存储节点116上。主存储节点包括用于存储数据库中数据的多个存储设备。存储设备可以位于单个数据中心,也可以位于不同地理位置上的多个数据中心。主计算节点与主存储节点通信。
主计算节点112可以接收结构化查询语言(structured query language,SQL)语句,例如写请求118和/或读请求148。SQL语句的发起者可以是客户端(例如客户端110)和/或客户(例如客户140)。在此提及时,客户端110发出写请求118,而客户140发出读请求148。单个设备可以同时作为客户端110和客户140运行。
在此提及的“写请求”包括用于修改、插入或删除主数据库114的关系表中特定页面上的特定行的请求。写请求118可以是,例如,用于向主数据库114中的页面上的记录添加新数据的请求。在一个非限制性示例中,一个写请求118可以对应于一个OLTP交易。OLTP交易的示例包括网上银行、预订机票、网上购书、订单录入等等。
主计算节点112处理包括写请求118和读请求148的SQL语句。副本计算节点122处理读请求148。
主计算节点112包括主数据库管理系统(master database management system,DBMS)120,其与客户端(例如客户端110)、各种外部应用(未示出)和主数据库114通信。
主DBMS 120用于生成传统重做日志130,这些日志显示了要对主数据库118进行的修改。传统重做日志130可以由传统重做日志生成器124生成。传统重做日志130可以包括下面描述的数千个传统重做记录。
图2A示出了为一个交易生成的传统重做记录231(本文还称为“重做记录”231)的示意图的说明性示例。传统重做记录231包括类型指示符232和数据位置标识符234,后者可以包括空间标识符236和页面标识符238。传统重做记录231还包括内容239,内容239包括嵌入其中的长度值标识符(未单独示出)。
通常情况下,类型指示符232的长度是一个字节。空间标识符236和页面标识符238分别占用1到4个字节。内容239的格式取决于传统重做记录231的由类型指示符232指示的类型。为每个写请求118生成单独的传统重做记录231。
再次参考图1,传统系统100还包括连接到副本数据库124的副本计算节点122。传统系统100可以包括一个以上副本计算节点122。每个副本计算节点122连接到对应的副本数据库124。副本数据库124可以位于,例如,副本存储节点126上。副本计算节点122可以用于处理从客户140接收到的读请求148。
主计算节点112持续生成传统重做日志130并将它们传播到一个或多个副本计算节点122。副本计算节点122通过将传统重做日志130应用于存储在副本数据库124中的数据,持续与主计算节点112同步。为此,哈希表128在副本计算节点122中进行修改并如下所示使用。
主计算节点112处的写操作以主计算节点112接收到的写请求118为基础。可以认为写操作是在传统系统100中的所有或至少大多数副本计算节点122已经接收到对应于该写操作的传统重做日志130之后结束的。
响应于读请求148,在副本计算节点122已经从主计算节点112接收到所有重做日志130并完成处理之后,副本计算节点122可以执行读操作。重做日志130可能需要从主计算节点112快速发送到一个或多个副本计算节点122,以便加快完成写操作。
重做日志130还可能需要由副本计算节点122快速处理,以赶上写操作的速度并确保用于读请求的数据是最新的。副本计算节点122解析重做日志130并将重做日志130添加到它们在副本数据库122中的数据页面上。在重做日志130添加到副本数据库124中之后,可以认为写操作是在主计算节点112上完成的。
副本DBMS 135中的解析引擎133解析传统重做日志130,以获得传统重做记录231。传统重做记录231然后根据它们的数据位置标识符进行分组。每组传统重做记录231包括具有相同的空间标识符236和页面标识符238的传统重做记录231。页面标识符238标识数据库的对应空间内的页面。这些多组传统重做记录231然后插入到哈希表128中。
图2B为传统重做日志130的片段280的示意图。片段280包括按顺序排列的第一重做记录231a和第二重做记录231b。在片段280中,第二重做记录231b位于第一重做记录231a之后。传统重做日志130的各个片段可以包括两个以上重做记录231a和231b。
片段280在分发线程(未示出)内从主计算节点112发送到副本计算节点122。分发线程形成传统重做日志130。每个分发线程包括同样按顺序排列的片段280。当处理分发线程及其片段280时,主计算节点112和副本计算节点122都解析片段280,以便确定与片段280中的下一个重做记录的起点291a或291b的偏移。
为了加快完成写操作,数据可以在主计算节点112和副本计算节点122之间快速传输。此外,主计算节点和副本计算节点122都可以加快解析重做日志130。
为了处理重做日志130,在每个节点(主计算节点和副本节点)处可以将片段280解析成各个传统重做记录231。节点还可以为所有解析出的传统重做记录231分配内存,并按页面编号对传统重做记录231进行分组。然后,节点按顺序将具有相同页面编号的所有传统重做记录231应用于数据库114和124中的各个页面。当解析片段280、使用哈希表进行分组以及改变传统重做记录231的顺序时,这样处理传统重做日志130会给中央处理单元(central processing unit,CPU)带来很大压力。这种处理方式还需要大量内存分配。
本文所述的技术将多个传统重做记录合并为一个合并重做记录,减轻了对内存分配的要求。如本文所述,包括合并重做记录的合并重做日志可以更快地解析。此外,本文所述的技术还可以减少网络流量。
新的合并重做记录具有按页面编号进行分组的数据。因此,无需对许多传统重做记录进行分组,也无需将传统重做记录按顺序排列,因为与重做记录的接收时间对应的顺序被保留在合并重做记录内。
图3为适合于实现本发明技术的非限制性实施例的系统300的示意图。
上面已经论述了图3所示的客户端110、客户140、写操作118、读操作148、包括主数据库114的主存储节点116和包括副本数据库124的副本存储节点126。
系统300包括修改后的主计算节点312和修改后的副本计算节点322。修改后的主计算节点312包括修改后的主DBMS 320,其与客户端(例如客户端110)、各种外部应用(未示出)和主数据库114通信。除上面论述的传统重做日志生成器124之外,修改后的主DBMS 320还包括合并重做日志生成器350。
合并重做日志生成器350用于生成合并重做日志360。与传统系统100中的传统重做日志130类似,合并重做日志360可以用于在系统300中的修改后的主计算节点312、修改后的副本计算节点322、主存储节点116和副本存储节点126之间进行数据传输。修改后的副本计算节点322包括修改后的解析引擎333,其用于更新哈希表328。
图4示意性地示出了选择包括第一传统重做记录231a、第二传统重做记录231b和最后一个传统重做记录231z的传统重做记录231的子集431。图4还示意性地示出了本发明至少一个实施例提供的合并重做记录461。合并重做记录461由合并重做日志生成器350从在传统重做记录231a、231b……231z中选择的传统重做记录中生成。
上面已经描述了子集431中的传统重做记录231a、231b……231z。传统重做记录231a、231b……231z包括:类型指示器232a、232b……232z,指示各个重做记录231a、231b……231z的类型;各自的数据位置标识符234a、234b……234z;以及各自的内容239a、239b……239z,包括嵌入其中的写数据和长度标识符。各自的数据位置标识符234a、234b……234z包括空间标识符236a、236b……236z和页面标识符238a、238b……238z。
再次参考图3,合并重做日志生成器350接收传统重做记录231并确定子集431。子集431中的传统重做记录231a、231b……231z由合并重做日志生成器350选择,前提是它们的数据位置标识符234a、234b……234z是相同的。根据选定的传统重做记录231a、231b……231z,合并重做日志生成器350生成合并重做记录461。
合并重做记录461包括合并类型指示符462、合并数据位置标识符464和总长度值470。合并类型指示符462可以是“标志”。
合并重做记录461包括合并数据位置标识符464的单个实例。合并数据位置标识符464与所有选定的传统重做记录231a、231b……231z的各自数据位置标识符234a、234b……234z相同。合并重做记录461可以不包括选定的传统重做记录231a、231b……231z的各自数据位置标识符234a、234b……234z。
总长度值470指示合并为合并重做记录461的选定传统重做记录231a、231b……231z的信息的合并长度。每次将另一个新选定的传统重做记录231的信息添加到合并重做记录461中时,总长度值470会改变以指示合并重做记录461的新长度。在一些实施例中,合并重做记录461不包括每个选定的传统重做记录231的各个长度标识符。
在一些实施例中,总长度值470紧跟在合并数据位置标识符464之后。这样会加快处理修改后的副本计算节点322,因为修改后的解析引擎333可以在读取合并数据位置标识符464之后立即读取总长度值470。当处理合并重做日志360时,修改后的解析引擎333可以使用总长度值470来计算可以在合并重做日志360的片段中找到下一个总长度值470的起始的位置。在读取总长度值470之后,修改后的解析引擎333可以不读取合并重做记录461的其余信息,并前进到下一个合并重做记录461。
包括在合并重做记录461中的选定传统重做记录231a、231b……231z的信息还包括对应于选定的传统重做记录231a、231b……231z的段475a、475b……475z。在至少一个实施例中,每个段475a、475b……475z包括对应的选定传统重做记录231a、231b……231z的类型指示符232a、232b……232z和原始内容239a、239b……239z。
由于段475a、475b……475z共用选定的传统重做记录231a、231b……231z的相同数据位置标识符,所以它们分组在一起。段475a、475b……475z根据对应的传统重做记录231a、231b……231z到达合并重做日志生成器350的顺序一个接着一个。
图5为本发明至少一个非限制性实施例提供的用于处理写请求的方法500的流程图。在描述方法500时也参考图3和图4。
在步骤510中,主计算节点312接收用于修改数据库中的页面的一个或多个写请求118,其中,所述数据库包括主数据库114和一个或多个副本数据库124。如上所述,每个写请求118可以对应于一个交易。
在步骤512中,传统重做日志生成器124为每个写请求118生成多个传统重做记录231。
在步骤514中,合并重做日志生成器350选择接收到的传统重做记录231,以确定选定的传统重做记录231a、231b……231z。传统重做记录231a、231b……231z根据它们包括相同的数据位置标识符234a、234b……234z进行选择。选定的传统重做记录231a、231b……231z可以包括相同的页面标识符238a、238b……238z。选定的传统重做记录231a、231b……231z还可以包括相同的空间标识符236a、236b……236z。页面标识符238a、238b……238z指示由对应的空间标识符236a、236b……236z指示的空间内的页面。
在一些实施例中,一个合并重做记录461中可以包括任意数量的选定传统重做记录231a、231b……231z和任意数量的对应段475a、475b……475z。
在其它实施例中,合并重做日志生成器350可以强制规定存在预定的指定阈值数量的传统重做记录。在这些实施例中,当接收到新的写请求和生成新的传统重做记录231a、231b……231z时,如果合并到重做记录461中的传统重做记录231a、231b……231z的数量已经满足传统重做记录的预定阈值数量,则合并重做日志生成器350可以停止将共用相同数据位置标识符的传统重做记录231a、231b……231z添加到合并重做记录461中。另一方面,如果其它传统重做记录包括相同的数据位置标识符,并且如果已经合并到合并重做记录461中的传统重做记录231a、231b……231z的数量小于可合并到合并重做记录461中的重做记录的指定阈值数量,则合并重做日志生成器350可以将其它重做记录合并到合并重做记录461中。
在步骤516中,修改后的主计算节点312中的合并重做日志生成器350将选定的传统重做记录231a、231b……231z合并为合并重做记录461。在步骤518中,将合并重做记录461发送到目标节点,其中,目标节点可以是发送传统重做日志所在的任何节点。在一些实施例中,目标节点可以是复制主数据库114所在的修改后的副本计算节点322。
图6为本发明至少一个其它非限制性实施例提供的用于生成合并重做记录461的方法600的流程图。图7示出了实现方法600时的传统重做记录231和合并重做记录461的非限制性示例。在一些实施例中,方法600可以在修改后的主DBMS 320内的合并重做日志生成器350中实现。在描述方法600时也参考图3和图4。
在步骤612中,合并重做日志生成器350接收图7中所示的第一传统重做记录731a。在步骤614中,合并重做日志生成器350生成图7中所示的第一合并重做记录761a。
第一合并重做记录761a包括第一合并类型指示符762a,指示第一合并重做记录761a是合并重做记录。第一合并重做记录761a还包括与数据位置标识符734a相同的合并数据位置标识符764a,并且包括第一传统重做记录731a中的第一空间标识符736a和第一页面标识符738a。第一合并重做记录761a包括第一总长度值770a,其对应于第一传统重做记录731a的单个长度值。第一合并重做记录761a还包括对应于第一传统重做记录731a的第一段775a。第一段775a包括第一传统重做记录731a中的第一类型指示符732a和第一内容739a。在一些实施例中,第一总长度值770a指示第一段775a的长度。
在方法600的步骤616中,合并重做日志生成器350接收第二传统重做记录731b。在步骤620中,合并重做日志生成器350将第一合并重做记录761a中的合并数据位置标识符764a与第二传统重做记录731b中的第二数据位置标识符734b进行比较。
在步骤622中,当合并数据位置标识符764a和第二数据位置标识符734b相同时,通过将第二传统重做记录731b的数据的一部分添加到第一合并重做记录761a中,合并重做日志生成器350修改第一合并重做记录761a,以获得(生成)修改后的第一合并重做记录,本文称为“第二合并重做记录761b”。
第二合并重做记录761b也在图7中示出。除第一合并重做记录761a的数据之外,第二合并重做记录761b还包括对应于第二传统重做记录731b的第二段775b。
第二段775b包括第二传统重做记录731b的数据。第二段775b可以包括第二类型指示符732b和第二内容739b。除使用第二段775b修改第一合并重做记录761a之外,合并重做日志生成器350还使用第二总长度值770b替换第一总长度值770a。第二总长度值770b以第二合并重做记录761b的总长度为基础。第二总长度值770b可以指示第一传统重做记录731a和第二传统重做记录731b的信息的合并长度,例如第一段775a和第二段775b的合并长度。由于第二合并重做记录761b比第一合并重做记录761a长,所以第二总长度值770b大于第一总长度值770b。
当步骤620指示合并数据位置标识符764a和第二数据位置标识符734b彼此不同时,在步骤624中,合并重做日志生成器350生成图7中所示的第三合并重做记录761c。第三合并重做记录761c以第二传统重做记录731b为基础,因此包括与第二传统重做记录731b有关的数据。第三合并重做记录761c包括第三合并类型指示符762c,指示第三合并重做记录761c是合并重做记录且合并关于多个单独重做记录的信息。第三合并重做记录761c还包括第二传统重做记录731b中的第二空间标识符736b和第二页面标识符738b。第三合并重做记录761c还包括第三总长度值770c,其对应于第二传统重做记录731b的单个长度值。第三合并重做记录761b还包括第二传统重做记录731b中的第二类型指示符732b和第二内容739b。
在一些实施例中,如果合并数据位置标识符764a和第二数据位置标识符734b彼此不同,则合并重做记录761a被传统重做记录731a替换,以便返回生成合并重做记录761b之前。然后,传统重做记录731a可以发送到目标节点,例如修改后的副本计算节点322。
通常,传统重做日志生成器124生成和发送的传统重做日志包括具有相似数据位置标识符734a的一系列许多传统重做记录731a。换句话说,通常一个传统重做记录在另一个具有相同数据位置标识符的传统重做记录之前。因此,使用指示空间和页面(<s,p>)的新数据位置标识符为每个传统重做记录731a生成合并重做记录761a有助于加快合并重做记录761a的生成过程。
在已经生成第二合并重做记录761b的步骤622之后继续,在步骤626中,合并重做日志生成器350接收图7中所示的第四传统重做记录731d。在步骤628中,合并重做日志生成器350确定第四数据位置标识符734d是否类似于第二合并重做记录761b的合并数据位置标识符764a。
如果第四数据位置标识符734d类似于合并数据位置标识符764a,则在步骤630中,将对应于第四传统重做记录731d的第三段775d添加到第二合并重做记录761b中,以获得第四合并重做记录761d。新的总长度值770d对应于第四合并重做记录761d的新的总长度。第三段775d可以包括第四类型指示符732d和第四内容739d。
如果第四数据位置标识符734d与合并数据位置标识符764a不同,则在步骤632中,合并重做日志生成器350最终确定第二合并重做记录761b,并将其发送到目标节点,例如修改后的副本节点322。合并重做日志生成器350还根据第四传统重做记录731d生成第五合并重做记录761e。在一些实施例中,在接收到具有不同数据位置标识符的传统重做记录之后,合并重做记录761可以最终确定,然后从合并重做日志生成器350发送到目标节点。
现在回到图3,最终确定的合并重做记录761d发送到修改后的副本计算节点322。修改后的解析引擎333接收最终确定的合并重做记录761d。修改后的解析引擎333可以通过编辑哈希表328处理传统重做记录231以及合并重做记录461和761d。
当修改后的解析引擎333将合并重做记录461应用于哈希表328时,修改后的解析引擎333解析并应用这些合并重做记录461作为单一的记录,这样加快了写请求的处理速度。
在本文描述的系统300中使用合并重做记录461可以有助于节省内存分配并减少系统300中的网络业务。合并重做记录461比多个携带相同信息的对应传统重做记录231a……231z短。因此,需要在系统300中的节点之间记录或传输的数据较少。
参考图2B,当处理传统重做日志130时,传统解析引擎133需要深度扫描每个传统重做记录231a和231b,以确定与片段280中的下一个重做记录部分的起点291a的偏移。相比之下,在合并重做记录461中,总长度值470位于每个合并重做记录461的起始附近。因此,当处理包括合并重做记录461的合并重做日志360时,修改后的解析引擎233可以通过解析合并重做记录461的前几个字节并分析总长度值470,跳到合并重做记录461的最末尾。此外,修改后的解析引擎333不需要按照任何特定顺序排列合并重做记录或传统重做记录,因为合并重做记录和传统重做记录到达合并重做日志生成器350的顺序被保留在合并重做日志360内。
虽然已经参考本发明的具体特征和实施例描述了本发明,但明显的是,可以在不脱离本发明的情况下对本发明进行各种修改和组合。因此,说明书和附图仅被视为所附权利要求书限定的对本发明的说明,并且预期覆盖落入本发明的范围内的任何和所有修改、变体、组合或等效物。
Claims (25)
1.一种计算节点,其特征在于,所述计算节点包括:
处理器,
存储指令的非瞬时性存储介质,其中,所述处理器可执行所述指令以:
接收用于修改数据库中的一个或多个页面的多个写请求;
为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;
选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;
将所述子集中的所述多个重做记录合并为一个合并重做记录;
将所述合并重做记录发送到目标节点。
2.根据权利要求1所述的计算节点,其特征在于,所述数据位置标识符包括页面标识符。
3.根据权利要求2所述的计算节点,其特征在于,所述数据位置标识符还包括用于标识空间的空间标识符,所述页面标识符标识所述空间内的页面。
4.根据权利要求1至3中任一项所述的计算节点,其特征在于,
所述多个重做记录中的每个重做记录包括:
各自的数据位置标识符和
包括写数据的内容;
所述合并重做记录包括:
所述相同的数据位置标识符的单个实例和
所述子集中的所述多个重做记录的信息,其中,所述信息包括所述子集中的所述多个重做记录的内容但不包括所述子集中的所述多个重做记录的各自数据位置标识符。
5.根据权利要求4所述的计算节点,其特征在于,所述合并重做记录还包括总长度值,指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度。
6.根据权利要求4所述的计算节点,其特征在于,
所述多个重做记录中的每个重做记录包括用于指示所述每个重做记录的类型的类型指示符;
所述子集中包括在所述合并重做记录中的所述多个重做记录的信息包括所述子集中的所述多个重做记录的类型指示符。
7.根据权利要求4所述的计算节点,其特征在于,
所述多个重做记录中的每个重做记录包括各自的长度值,指示所述每个重做记录的内容的长度;
所述子集中包括在所述合并重做记录中的所述多个重做记录的信息包括所述子集中的所述多个重做记录的各自长度值。
8.根据权利要求1至3中任一项所述的计算节点,其特征在于,
所述多个重做记录中的每个重做记录包括指示所述每个重做记录的类型的类型指示符、各自的数据位置标识符、各自的长度值和包括写数据的内容;
所述合并重做记录包括所述相同的数据位置标识符的单个实例、指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度的总长度值以及多个段,其中,所述多个段中的每个段包括(i)所述类型指示符、(ii)各自的长度值和(iii)所述子集中的对应重做记录的内容,所述多个段中的每个段不包括所述对应重做记录的数据位置标识符。
9.根据权利要求1至3中任一项所述的计算节点,其特征在于,所述处理器执行所述指令以:
将所述子集中的第一重做记录的第一值和所述子集中的第二重做记录的第二值合并为包括在所述合并重做记录的一段中的合并值,其中,所述第一值表示对页面中的第一偏移的第一写操作,所述第二值表示对所述页面中的第二偏移的第二写操作,所述合并值表示所述第一写操作和所述第二写操作的合并。
10.根据权利要求1至3中任一项所述的计算节点,其特征在于,所述处理器执行所述指令以:
接收用于修改所述数据库中的一个或多个页面的其它写请求;
为所述其它写请求生成其它重做记录;
如果所述其它重做记录包括所述相同的数据位置标识符,并且如果已经合并到所述合并重做记录中的重做记录的数量小于可合并到所述合并重做记录中的重做记录的指定阈值数量,则将所述其它重做记录合并到所述合并重做记录中。
11.根据权利要求1至3中任一项所述的计算节点,其特征在于,所述计算节点是用于处理写请求的主计算节点,所述目标节点是复制所述数据库所在的副本计算节点。
12.一种方法,其特征在于,所述方法包括:
在计算节点处接收用于修改数据库中的一个或多个页面的多个写请求;
在所述计算节点处为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;
选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;
在所述计算节点处将所述子集中的所述多个重做记录合并为一个合并重做记录;
将所述合并重做记录从所述计算节点发送到目标节点。
13.根据权利要求12所述的方法,其特征在于,所述数据位置标识符包括页面标识符。
14.根据权利要求13所述的方法,其特征在于,
所述数据位置标识符还包括用于标识空间的空间标识符,
所述页面标识符标识所述空间内的页面。
15.根据权利要求12至14中任一项所述的方法,其特征在于,
所述多个重做记录中的每个重做记录包括:
各自的数据位置标识符和
包括写数据的内容;
所述合并重做记录包括:
所述相同的数据位置标识符的单个实例和
所述子集中的所述多个重做记录的信息,其中,所述信息包括所述子集中的所述多个重做记录的内容但不包括所述子集中的所述多个重做记录的各自数据位置标识符。
16.根据权利要求15所述的方法,其特征在于,所述合并重做记录还包括总长度值,指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度。
17.根据权利要求15所述的方法,其特征在于,
所述多个重做记录中的每个重做记录包括用于指示所述每个重做记录的类型的类型指示符;
所述子集中包括在所述合并重做记录中的所述多个重做记录的信息包括所述子集中的所述多个重做记录的类型指示符。
18.根据权利要求15所述的方法,其特征在于,
所述多个重做记录中的每个重做记录包括各自的长度值,指示所述每个重做记录的内容的长度;
所述子集中包括在所述合并重做记录中的所述多个重做记录的信息包括所述子集中的所述多个重做记录的各自长度值。
19.根据权利要求12至14中任一项所述的方法,其特征在于,
所述多个重做记录中的每个重做记录包括指示所述每个重做记录的类型的类型指示符、各自的数据位置标识符、各自的长度值和包括写数据的内容;
所述合并重做记录包括所述相同的数据位置标识符的单个实例、指示所述子集中合并为所述合并重做记录的所述多个重做记录的信息的合并长度的总长度值以及多个段,其中,所述多个段中的每个段包括(i)所述类型指示符、(ii)各自的长度值和(iii)所述子集中的对应重做记录的内容,所述多个段中的每个段不包括所述对应重做记录的数据位置标识符。
20.根据权利要求12至14中任一项所述的方法,其特征在于,所述处理器执行所述指令以:
将所述子集中的第一重做记录的第一值和所述子集中的第二重做记录的第二值合并为包括在所述合并重做记录的一段中的合并值,其中,所述第一值表示对页面中的第一偏移的第一写操作,所述第二值表示对所述页面中的第二偏移的第二写操作,所述合并值表示所述第一写操作和所述第二写操作的合并。
21.根据权利要求12至14中任一项所述的方法,其特征在于,所述方法还包括:
接收用于修改所述数据库中的一个或多个页面的其它写请求;
为所述其它写请求生成其它重做记录;
如果所述其它重做记录包括所述相同的数据位置标识符,并且如果已经合并到所述合并重做记录中的重做记录的数量小于可合并到所述合并重做记录中的重做记录的指定阈值数量,则将所述其它重做记录合并到所述合并重做记录中。
22.根据权利要求12至14中任一项所述的方法,其特征在于,所述计算节点是用于处理写请求的主计算节点,所述目标节点是复制所述数据库所在的副本节点。
23.根据权利要求12至14中任一项所述的方法,其特征在于,所述在所述计算节点处将所述子集中的所述多个重做记录合并为一个合并重做记录包括:
接收包括第一数据位置标识符的第一重做记录;
生成第一合并重做记录,其中,所述第一合并重做记录包括:
所述第一数据位置标识符和
基于所述第一重做记录的第一段;
接收包括第二数据位置标识符的第二重做记录;
如果所述第一数据位置标识符与所述第二数据位置标识符相同,
则通过根据所述第一重做记录将第二段添加到所述第一合并重做记录中并排除所述第二数据位置标识符,生成第二合并重做记录。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
如果所述第一数据位置标识符与所述第二数据位置标识符不同,
则生成新的合并重做记录,其中,所述新的合并重做记录包括:
所述第二数据位置标识符和
基于所述第三重做记录的新段,其中,所述新的合并重做记录不包括所述第一重做记录的信息。
25.一种用于处理多个写请求的系统,其特征在于,所述系统包括:
数据库;
计算节点,用于:
接收所述用于修改数据库中的一个或多个页面的多个写请求;
为所述多个写请求中的每个写请求生成包括一个重做记录的多个重做记录;
选择包括所述多个重做记录的子集,其中,所述子集中的每个重做记录包括相同的数据位置标识符;
将所述子集中的所述多个重做记录合并为一个合并重做记录;
发送所述合并重做记录;
目标节点,用于从所述计算节点接收所述合并重做记录。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/590,078 | 2019-10-01 | ||
US16/590,078 US11321354B2 (en) | 2019-10-01 | 2019-10-01 | System, computing node and method for processing write requests |
PCT/CN2020/114725 WO2021063167A1 (en) | 2019-10-01 | 2020-09-11 | System, computing node and method for processing write requests |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114127707A true CN114127707A (zh) | 2022-03-01 |
Family
ID=75163666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080052186.9A Pending CN114127707A (zh) | 2019-10-01 | 2020-09-11 | 用于处理写请求的系统、计算节点和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11321354B2 (zh) |
EP (1) | EP4022464A4 (zh) |
CN (1) | CN114127707A (zh) |
WO (1) | WO2021063167A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580110B2 (en) * | 2019-12-31 | 2023-02-14 | Huawei Cloud Computing Technologies Co., Ltd. | Methods and apparatuses for generating redo records for cloud-based database |
CN115114370B (zh) * | 2022-01-20 | 2023-06-13 | 腾讯科技(深圳)有限公司 | 主从数据库的同步方法、装置、电子设备和存储介质 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5941215B2 (ja) * | 1979-10-09 | 1984-10-05 | 富士通株式会社 | 主記憶装置書込み制御方式 |
CA2285096C (en) * | 1991-11-12 | 2000-05-09 | Ibm Canada Limited-Ibm Canada Limitee | Logical mapping of data objects using data spaces |
US5819020A (en) * | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
US6480950B1 (en) * | 2000-01-24 | 2002-11-12 | Oracle International Corporation | Software paging system |
US6499085B2 (en) * | 2000-12-29 | 2002-12-24 | Intel Corporation | Method and system for servicing cache line in response to partial cache line request |
US7552147B2 (en) * | 2005-09-02 | 2009-06-23 | International Business Machines Corporation | System and method for minimizing data outage time and data loss while handling errors detected during recovery |
KR100725415B1 (ko) * | 2005-12-24 | 2007-06-07 | 삼성전자주식회사 | 데이터베이스의 로그병합 방법 및 장치 |
KR100862661B1 (ko) * | 2006-11-16 | 2008-10-10 | 삼성전자주식회사 | 지연된 로깅 방법 및 그 장치 |
US8671074B2 (en) * | 2010-04-12 | 2014-03-11 | Microsoft Corporation | Logical replication in clustered database system with adaptive cloning |
US8572038B2 (en) * | 2010-05-28 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8572031B2 (en) * | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US20130198134A1 (en) | 2012-01-30 | 2013-08-01 | International Business Machines Corporation | Online verification of a standby database in log shipping physical replication environments |
WO2013130090A1 (en) * | 2012-03-02 | 2013-09-06 | Arm Limited | Data processing apparatus having first and second protocol domains, and method for the data processing apparatus |
JP6011194B2 (ja) * | 2012-09-21 | 2016-10-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9106721B2 (en) * | 2012-10-02 | 2015-08-11 | Nextbit Systems | Application state synchronization across multiple devices |
US9501501B2 (en) * | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US9842053B2 (en) * | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US10303564B1 (en) * | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US10360195B1 (en) * | 2013-06-26 | 2019-07-23 | Amazon Technologies, Inc. | Absolute and relative log-structured storage |
US9767178B2 (en) * | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US9223843B1 (en) * | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
CN103744936B (zh) * | 2013-12-31 | 2017-02-08 | 华为技术有限公司 | 一种数据库中的多版本并发控制方法及数据库系统 |
US10108496B2 (en) * | 2014-06-30 | 2018-10-23 | International Business Machines Corporation | Use of replicated copies to improve database backup performance |
US9928264B2 (en) | 2014-10-19 | 2018-03-27 | Microsoft Technology Licensing, Llc | High performance transactions in database management systems |
US9747295B1 (en) * | 2014-11-03 | 2017-08-29 | Sprint Communications Company L.P. | Updating a large dataset in an enterprise computer system |
US9772911B2 (en) * | 2015-03-27 | 2017-09-26 | International Business Machines Corporation | Pooling work across multiple transactions for reducing contention in operational analytics systems |
KR101765517B1 (ko) * | 2016-04-06 | 2017-08-08 | 한양대학교 산학협력단 | 데이터베이스를 저널링하는 장치 및 방법 |
CN106708968B (zh) | 2016-12-01 | 2019-11-26 | 成都华为技术有限公司 | 分布式数据库系统和分布式数据库系统中的数据处理方法 |
CN107145432B (zh) | 2017-03-30 | 2020-12-22 | 华为技术有限公司 | 一种建立模型数据库的方法以及客户端 |
-
2019
- 2019-10-01 US US16/590,078 patent/US11321354B2/en active Active
-
2020
- 2020-09-11 WO PCT/CN2020/114725 patent/WO2021063167A1/en unknown
- 2020-09-11 CN CN202080052186.9A patent/CN114127707A/zh active Pending
- 2020-09-11 EP EP20872008.6A patent/EP4022464A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4022464A4 (en) | 2022-12-28 |
US11321354B2 (en) | 2022-05-03 |
WO2021063167A1 (en) | 2021-04-08 |
EP4022464A1 (en) | 2022-07-06 |
US20210097035A1 (en) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9953051B2 (en) | Multi-version concurrency control method in database and database system | |
TWI628551B (zh) | Data library copying method and device based on log parsing | |
EP3120261B1 (en) | Dependency-aware transaction batching for data replication | |
US8683112B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
CN102640151A (zh) | 信息系统中转换后的数据的高吞吐量、可靠复制 | |
US9952940B2 (en) | Method of operating a shared nothing cluster system | |
US20070220222A1 (en) | Methods and apparatus for modifying a backup data stream including logical partitions of data blocks to be provided to a fixed position delta reduction backup application | |
CN109086388A (zh) | 区块链数据存储方法、装置、设备及介质 | |
CN102629247A (zh) | 一种数据处理方法、装置和系统 | |
CN114127707A (zh) | 用于处理写请求的系统、计算节点和方法 | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN106407376B (zh) | 重建索引方法及装置 | |
TW201514734A (zh) | 資料庫管理方法、資料庫管理系統,以及資料庫樹狀結構 | |
CN109491834A (zh) | 一种应用于数据库的数据恢复方法及装置 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN114741449A (zh) | 一种基于分布式数据库的对象存储方法及装置 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN110196786B (zh) | 数据库回滚同步中内存的控制方法及设备 | |
CN105354149B (zh) | 一种内存数据查找方法和装置 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN113656504A (zh) | 一种基于时序属性的区块链交易提交、编辑和查询方法 | |
US10922277B1 (en) | Logging file system metadata changes using a single log hold per cached block of metadata | |
US20200249876A1 (en) | System and method for data storage management | |
KR101299555B1 (ko) | 해시 함수 기반의 인덱스를 이용한 텍스트 검색 장치 및 방법 | |
US9147011B2 (en) | Searching method, searching apparatus, and recording medium of searching program |
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 |