CN112100141A - 一种数据页处理方法、装置及系统 - Google Patents
一种数据页处理方法、装置及系统 Download PDFInfo
- Publication number
- CN112100141A CN112100141A CN202010956140.1A CN202010956140A CN112100141A CN 112100141 A CN112100141 A CN 112100141A CN 202010956140 A CN202010956140 A CN 202010956140A CN 112100141 A CN112100141 A CN 112100141A
- Authority
- CN
- China
- Prior art keywords
- data page
- sequence number
- log sequence
- log
- node
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 230000002688 persistence Effects 0.000 claims abstract description 53
- 230000008859 change Effects 0.000 claims abstract description 49
- 230000002085 persistent effect Effects 0.000 claims description 61
- 238000003379 elimination reaction Methods 0.000 claims description 43
- 230000008030 elimination Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种数据页处理方法、装置及系统。该技术方案中,当出现热点数据,主节点频繁更新数据页时,不必等待所有从节点均完成对数据页的当前变更,只要所有从节点均至少缓存了上一次持久化的数据页,主节点就可持久化当前变更后的数据页了。这样,将主节点对当前变更后数据页的持久化与所有从节点完成该数据页的当前变更解耦,使得即便出现热点数据更新,主节点的检查点事件也可以持续推进,执行数据页持久化操作,后续对数据页的更新也可正常执行,避免数据库发生异常。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据页处理方法、装置及系统。
背景技术
在数据库应用中,采用计算存储分离架构,多个计算节点共享存储层数据。为了应对巨大的数据访问量的问题,计算节点通常会采用主从复制(Primary-Replica)的架构。主节点负责数据的写入,从节点通过从存储层获取重做日志RedoLog的方式同步主节点的数据更新。目前,主节点对于更新后的数据页Page,需要在所有从节点完成对该数据页的更新后才能执行持久化操作。
但是,当出现对同一数据页的频繁修改时,组从节点之间多次同步修改对应的重做日志,从节点不断应用重做日志同步数据页变更。由于主从节点之间存在同步延迟,当修改频繁时,持久化条件一直无法满足,主节点就不能对更新后的数据页进行持久化,这样,主节点的检查点CheckPoint事件推进异常。并且,从节点由于不断应用重做日志同步数据页更新,强制缓存队列Force_Cache_List链表持续增加,页面淘汰机制失效,严重消耗从节点大量内存。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种数据页处理方法、装置及系统。
根据本申请实施例的一个方面,提供了一种数据页持久化方法,包括:
接收从节点发送的第一应用日志序号,所述第一应用日志序号由所述从节点应用第一数据页对应的第一重做日志后得到;
从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;
当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
可选的,所述方法还包括:
当进行对数据页的第一变更操作后,得到第一数据页,将所述第一变更操作对应的第一重做日志写入存储层;
生成第一通知消息,所述通知消息包括所述第一重做日志在所述存储层中的第一偏移量;
将所述第一通知消息发送到所述从节点,由所述从节点根据所述第一偏移量从所述存储层读取所述第一重做日志,对所述第一重做日志进行应用后得到所述第一数据页,生成第一应用日志序号,并将所述第一数据页加入到所述从节点的强制缓存队列。
可选的,所述方法还包括:
当对所述第二数据页的持久化操作执行完毕后,生成包括所述第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;
将所述数据页淘汰指令发送到所述从节点。
可选的,所述将当前变更操作后的第二数据页标识为可持久化,包括:
将所述第二数据页对应的持久化标识置为有效;
所述方法还包括:
当对所述第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
根据本申请实施例的另一个方面,提供了一种数据页处理方法,包括:
接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,所述数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
查询所述数据页标识对应的第三数据页;
当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
可选的,所述方法还包括:
根据主节点发送的第三通知消息从存储层读取第三重做日志,所述第三通知消息包括所述第三重做日志在所述存储层中的第三偏移量;
应用所述第三重做日志,实现所述第三重做日志对应的第三变更操作,得到第三数据页;
将所述第三数据页加入到所述强制缓存队列;
将应用所述第三重做日志对应的第三应用日志序号发送到所述主节点。
根据本申请实施例的另一个方面,提供了一种数据页处理装置,包括:
接收模块,用于接收从节点发送的第一应用日志序号,所述第一应用日志序号由所述从节点应用第一数据页对应的第一重做日志后得到;
确定模块,用于从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;
标识模块,用于当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第一数据页标识为可持久化。
根据本申请实施例的另一个方面,提供了一种数据页处理装置,包括:
接收模块,用于接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,所述数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
查询模块,用于查询所述数据页标识对应的第三数据页;
标识模块,用于当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
根据本申请实施例的另一个方面,提供了一种数据页处理系统,包括:相互连接的主节点以及至少一个从节点,所述主节点和从节点分别与存储层连接;
所述从节点,用于在应用第一数据页对应的第一重做日志后得到第一应用日志序号,并将所述第一应用日志序号发送到所述主节点;
所述主节点,用于从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
可选的,所述主节点,还用于当对所述第二数据页的持久化操作执行完毕后,生成包括所述第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;将所述数据页淘汰指令发送到所述从节点;
所述从节点,还用于接收所述数据页淘汰指令;查询所述数据页标识对应的第三数据页;当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
可选的,所述主节点,还用于当进行对数据页的第一变更操作后,得到第一数据页,将所述第一变更操作对应的第一重做日志写入存储层;生成第一通知消息,所述通知消息包括所述第一重做日志在所述存储层中的第一偏移量;将所述第一通知消息发送到所述从节点;
所述从节点,还用于根据所述第一偏移量从所述存储层读取所述第一重做日志,对所述第一重做日志进行应用后得到所述第一数据页,生成第一应用日志序号,并将所述第一数据页加入到所述从节点的强制缓存队列。
可选的,所述主节点,还用于将所述第二数据页对应的持久化标识置为有效;当对所述第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
当出现热点数据,主节点频繁更新数据页时,不必等待所有从节点均完成对数据页的当前变更,只要所有从节点均至少缓存了上一次持久化的数据页,主节点就可持久化当前变更后的数据页了。这样,将主节点对当前变更后数据页的持久化与所有从节点完成该数据页的当前变更解耦,使得即便出现热点数据更新,主节点的检查点事件也可以持续推进,执行数据页持久化操作,后续对数据页的更新也可正常执行,避免数据库发生异常。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据页处理方法的流程图;
图2为本申请另一实施例提供的一种数据页处理方法的流程图;
图3为本申请另一实施例提供的一种数据页处理方法的流程图;
图4为本申请实施例提供的主节点和从节点之间的交互流程图;
图5为本申请实施例提供的一种数据页处理装置的框图;
图6为本申请另一实施例提供的一种数据页处理装置的框图;
图7为本申请另一实施例提供的一种数据页处理装置的框图;
图8为本申请另一实施例提供的一种数据页处理系统的框图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面首先对本申请实施例涉及到的技术用语进行说明。
日志序号(log sequence number,LSN),主要用于发生宕机时对数据进行恢复。LSN是一个一直递增的整型数字,表示事务写入到日志的字节总量。LSN不仅只存在于重做日志RedoLog中,在每个数据页(Page)头部也会有对应的LSN。一个数据页可能会在不同的时刻被修改多次,在数据页上记录了最老(也就是第一次)修改的LSN,即oldest_modification,以及最新(也就是最后一次)修改的LSN,即newest_modification。数据页的每次变更在持久化后,即存储到存储层后,更新其newest_modification。
本申请实施例,在主节点和从节点之间形成决议:
主节点执行数据页变更后,只要从节点当前应用重做日志对应的应用日志序号超过上一次主节点持久化数据页的持久化日志序号(也即newest_modification),主节点就可以持久化该数据页,无需等到所有从节点完成对该数据页的变更。
在主节点持久化该数据页后,可通知从节点在应用该数据页对应重做日志后,即可淘汰该数据页。
这样,可以正常推进主节点的数据页持久化以及从节点的数据页淘汰。
本实施例中,数据页同步的全部过程包括了主节点的数据页持久化过程及从节点的数据页淘汰过程,下面分别对数据页持久化和淘汰过程进行详细说明。
首先对本发明实施例所提供的一种用于主节点进行数据页持久化的数据页处理方法进行介绍。
图1为本申请实施例提供的一种数据页处理方法的流程图。如图1所示,该方法应用于主节点,包括以下步骤:
步骤S11,接收从节点发送的第一应用日志序号,第一应用日志序号由从节点应用第一数据页对应的第一重做日志后得到。
步骤S12,从所有从节点发送的第一应用日志序号中确定最小应用日志序号。
计算集群中存在多个从节点,各个从节点的处理进度可能存在差异。因此,各从节点当前应用不同的重做日志,返回给主节点的应用日志序号不同。确定最小应用日志序号,即确定所有从节点当前均完成缓存的数据页。
步骤S13,当确定最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
其中,第二数据页对应的变更操作发生在第一数据页对应的变更操作之后。主节点确定所有从节点当前完成缓存的数据页已经超过最新一次持久化的第一数据页,则可将当前变更操作后的第二数据页标识为可持久化。
可选的,对于每个数据页可增加一个用于标识其是否可进行持久化的持久化标识,当最小应用日志序号大于或等于第一持久化日志序号时,将该持久化标识设置为有效,如将持久化标识置为1。当主节点对第二数据页的持久化操作执行完毕后,将持久化标识清零,如将持久化标识置为0。
本实施例中,当出现热点数据,主节点频繁更新数据页时,不必等待所有从节点均完成对数据页的当前变更,只要所有从节点均至少缓存了上一次持久化的数据页,主节点就可持久化当前变更后的数据页了。这样,将主节点对当前变更后数据页的持久化与所有从节点完成该数据页的当前变更解耦,使得即便出现热点数据更新,主节点的检查点事件也可以持续推进,执行数据页持久化操作,后续对数据页的更新也可正常执行,避免数据库发生异常。
图2为本申请另一实施例提供的一种数据页处理方法的流程图。如图2所示,该方法还包括以下步骤:
步骤S21,当进行对数据页的第一变更操作后,得到第一数据页,将第一变更操作对应的第一重做日志写入存储层。
其中,主节点在数据库缓冲池BufferPool中进行数据页变更操作。
步骤S22,生成第一通知消息,通知消息包括第一重做日志在存储层中的第一偏移量。
其中,偏移量也即重做日志地址(redo byte address,RBA)。RBA是一串地址数字,由三部分组成:日志文件序列号、日志文件块编号及重做日志记录在日志块中的起始偏移字节数。
步骤S23,将第一通知消息发送到从节点,以由从节点根据第一偏移量从存储层读取第一重做日志,对第一重做日志进行应用后得到第一数据页,生成第一应用日志序号,并将第一数据页加入到从节点的强制缓存队列。
主节点通过同步重做日志将数据页变更操作同步到从节点,从节点在应用重做日志后,将相应的数据页加入强制缓存队列,并将应用重做日志对应的应用日志序号返回给主节点。
实际上,主节点在每次数据页变更操作后,都会通知从节点从存储层下载变更操作对应的重做日志。从节点按照重做日志的日志序号,顺序应用。对于第二数据页,主节点在变更后,将第二重做日志的偏移量告知从节点,从节点根据该偏移量从存储层读取第二重做日志,应用第二重做日志后,将第二数据页加入强制缓存队列,将第二应用日志序号返回给主节点。
本实施例中,当主节点对第二数据页的持久化操作执行完毕后,生成包括第二数据页对应的数据页标识及第二持久化日志序号(也即更新后的newest_modification)的数据页淘汰指令;将数据页淘汰指令发送到从节点。通过淘汰指令,通知从节点在应用到第二持久化日志序号对应的重做日志后,可以将第二持久化日志序号对应的数据页淘汰。
这样,使得从节点可以在处理到主节点已持久化的数据页后,将该数据页从强制缓存队列中淘汰,避免强制缓存队列链表持续增加对从节点内存的消耗。
本实施例还对用于从节点淘汰数据页的数据页处理方法,下面进行具体介绍。
图3为本申请另一实施例提供的一种数据页处理方法的流程图。如图3所示,该方法应用于从节点,包括以下步骤:
步骤S31,接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
步骤S32,查询数据页标识对应的第三数据页;
步骤S33,当第三数据页对应的第三应用日志序号大于或等于第二持久化日志序号时,将第二数据页标识为可从强制缓存队列中淘汰。
从节点对于每个数据页可增加一个用于标识其是否可进行淘汰的淘汰标识,当第三应用日志序号大于或等于第二持久化日志序号时时,将该淘汰标识设置为有效,如将淘汰标识置为1。当从节点将第二数据页淘汰后,将淘汰标识清零。
实际上,从节点确定是否淘汰数据页还有其他影响因素,因此,上述步骤S33中,只是将数据页标识为可淘汰,实际从强制缓存队列中淘汰该数据页的时机需要结合其他影响因素确定。
本实施例中,该方法还包括:
步骤P1,根据主节点发送的第三通知消息从存储层读取第三重做日志,第三通知消息包括第三重做日志在存储层中的第三偏移量;
步骤P2,应用第三重做日志,实现第三重做日志对应的第三变更操作,得到第三数据页第三数据页;
步骤P3,将第三数据页加入到强制缓存队列;
步骤P4,将应用第三重做日志对应的第三应用日志序号发送到主节点。
本实施例中,从节点在处理到主节点已持久化的数据页后,则可将该数据页从强制缓存队列中淘汰,使得对数据页淘汰正常推进,避免由于出现热点数据频繁更新数据页淘汰机制失效,导致强制缓存队列链表持续增加对从节点内存的消耗。
下面以一个具体的实例对包括上述主节点进行数据页持久化以及从节点进行数据页淘汰的数据页同步流程进行详细说明。
图4为本申请实施例提供的主节点和从节点之间的交互流程图。其中,数据页1、3、5、7、9对应的数据页标识相同,为数据页A。数据页2、4、6、8对应的数据页标识相同,为数据页B。如图4所示,主节点和从节点之间的交互流程如下:
a1.主节点进行数据页A变更操作,得到数据页1,将变更操作对应的第一重做日志同步到从节点;
a2.主节点进行数据页B变更操作,得到数据页2,将变更操作对应的第二重做日志同步到从节点;
a3.主节点再次对数据页A进行变更操作,得到数据页3,将变更操作对应的第三重做日志同步到从节点;
a4.从节点应用第一重做日志,将数据页1加入强制缓存队列,将第一应用日志序号返回给主节点;
a5.数据页A0(数据页A初始数据页)已被持久化,第一持久化日志序号,主节点确定第一应用日志序号大于第一持久化日志序号,则将数据页3标识为持久化,但不一定在此时持久化数据页3。
主节点在每次接收到从节点返回的应用日志序号时,都会做一次是否可持久化数据页的判断;
a6.主节点再次对数据页B进行变更操作,得到数据页4,将变更操作对应的第四重做日志同步到从节点;
a7.主节点持久化数据页3,将包括第三数据页对应的数据页A和持久化日志序号第三持久化日志序号的数据页淘汰指令发送到从节点;
主节点通知从节点在应用到数据页3对应的第三重做日志后,可以将数据页3淘汰;
a8.从节点应用第二重做日志,将数据页2依次加入强制缓存队列,可以仅将第二应用日志序号返回给主节点;
a9.从节点根据数据页淘汰指令查询数据页A对应数据页1,判断第二应用日志序号小于第三持久化日志序号,不符合数据页淘汰的条件,则不进行淘汰标识操作;
a10.主节点判断第二应用日志序号小于第三持久化日志序号,不将当前的数据页4标识为可持久化;
a11.主节点再次对数据页A进行变更操作,得到数据页5,将变更操作对应的第五重做日志同步到从节点;
a12.从节点依次应用第三重做日志、第四重做日志,将数据页3、数据页4依次加入强制缓存队列,可以仅将第四应用日志序号返回给主节点;
a13.从节点根据数据页淘汰指令查询数据页A对应的数据页1、3,判断第四应用日志序号大于第三持久化日志序号,则可将数据页1、3均标识为可淘汰;
a14.主节点再次对数据页B进行变更操作,得到数据页6,将变更操作对应的第六重做日志同步到从节点;
a15.从节点应用第五重做日志,将数据页5加入强制缓存队列,将第五应用日志序号返回给主节点;
a16.主节点判断第五应用日志序号大于第三持久化日志序号,则将数据页6标识为可持久化。
a17.主节点再次对数据页A进行变更操作,得到数据页7,将变更操作对应的第七重做日志同步到从节点;
a18.主节点再次对数据页B进行变更操作,得到数据页8,将变更操作对应的第八重做日志同步到从节点;
a19.从节点应用第六重做日志,将数据页6加入强制缓存队列,将第六应用日志序号返回给主节点;
a20.主节点持久化数据页7,将包括数据页7对应的数据页标识和持久化日志序号第七持久化日志序号发送到从节点。
上述实施例以主节点与一个从节点交互为例,对上述方法实施例进行说明。实际中,计算集群中存在多个从节点,当主节点与多个从节点交互时,在进行持久化判断操作时(上述步骤a5、a10、a16、a20中),需要从当前所有从节点返回的应用日志序号中筛最小应用日志序号,判断最小应用日志序号是否大于或等于上一次数据页持久化操作对应的持久化日志序号,如果是,主节点才能将当前变更后的数据页标识为持久化。
通过上述实施例可以看出,当出现热点数据更新频繁时,主节点可以正常推进数据页持久化,同时,从节点也可淘汰强制缓存队列中的非热点数据页。数据页更新可以正常执行下去,保证数据库的稳定运行。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图5为本申请实施例提供的一种数据页处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该数据页处理装置包括:
接收模块51,用于接收从节点发送的第一应用日志序号,第一应用日志序号由从节点应用第一数据页对应的第一重做日志后得到;
确定模块52,用于从所有从节点发送的第一应用日志序号中确定最小应用日志序号;
标识模块53,用于当确定最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第一数据页标识为可持久化。
可选的,标识模块53,用于将第二数据页对应的持久化标识置为有效;还用于当对第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
图6为本申请另一实施例提供的一种数据页处理装置的框图,如图6所示,可选的,数据页处理装置还包括:生成模块54,用于当对所述第二数据页的持久化操作执行完毕后,生成包括所述第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;发送模块55,用于将所述数据页淘汰指令发送到从节点。
图7为本申请另一实施例提供的一种数据页处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,该数据页处理装置,包括:
接收模块61,用于接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
查询模块62,用于查询数据页标识对应的第三数据页;
标识模块63,用于当第三数据页对应的第三应用日志序号大于或等于第二持久化日志序号时,将第二数据页标识为可从强制缓存队列中淘汰。
本申请实施例还提供一种数据页处理系统。图8为本申请实施例提供的一种数据页处理系统的框图,如图8所示,该系统包括:相互连接的主节点71以及至少一个从节点72,主节点71和从节点72分别与存储层73连接,共享存储层73的数据。
从节点72,用于在应用第一数据页对应的第一重做日志后得到第一应用日志序号,并将所述第一应用日志序号发送到所述主节点71;
所述主节点71,用于从所有所述从节点72发送的第一应用日志序号中确定最小应用日志序号;当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
可选的,主节点71,还用于当对第二数据页的持久化操作执行完毕后,生成包括第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;将数据页淘汰指令发送到从节点72。从节点72,还用于接收数据页淘汰指令;查询数据页标识对应的第三数据页;当第三数据页对应的第三应用日志序号大于或等于第二持久化日志序号时,将第二数据页标识为可从强制缓存队列中淘汰。
可选的,所述主节点71,还用于当进行对数据页的第一变更操作后,得到第一数据页,将所述第一变更操作对应的第一重做日志写入存储层;生成第一通知消息,所述通知消息包括所述第一重做日志在所述存储层中的第一偏移量;将所述第一通知消息发送到所述从节点72;所述从节点72,还用于根据所述第一偏移量从所述存储层读取所述第一重做日志,对所述第一重做日志进行应用后得到所述第一数据页,生成第一应用日志序号,并将所述第一数据页加入到所述从节点72的强制缓存队列。
可选的,所述主节点71,还用于将所述第二数据页对应的持久化标识置为有效;当对所述第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
本申请实施例还提供一种电子设备,如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种数据页处理方法,其特征在于,包括:
接收从节点发送的第一应用日志序号,所述第一应用日志序号由所述从节点应用第一数据页对应的第一重做日志后得到;
从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;
当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当进行对数据页的第一变更操作后,得到第一数据页,将所述第一变更操作对应的第一重做日志写入存储层;
生成第一通知消息,所述通知消息包括所述第一重做日志在所述存储层中的第一偏移量;
将所述第一通知消息发送到所述从节点,以由所述从节点根据所述第一偏移量从所述存储层读取所述第一重做日志,对所述第一重做日志进行应用后得到所述第一数据页,生成第一应用日志序号,并将所述第一数据页加入到所述从节点的强制缓存队列。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述第二数据页的持久化操作执行完毕后,生成包括所述第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;
将所述数据页淘汰指令发送到所述从节点。
4.根据权利要求1所述的方法,其特征在于,所述将当前变更操作后的第二数据页标识为可持久化,包括:
将所述第二数据页对应的持久化标识置为有效;
所述方法还包括:
当对所述第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
5.一种数据页处理方法,其特征在于,包括:
接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,所述数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
查询所述数据页标识对应的第三数据页;
当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据主节点发送的第三通知消息从存储层读取第三重做日志,所述第三通知消息包括所述第三重做日志在所述存储层中的第三偏移量;
应用所述第三重做日志,实现所述第三重做日志对应的第三变更操作,得到第三数据页;
将所述第三数据页加入到所述强制缓存队列;
将应用所述第三重做日志对应的第三应用日志序号发送到所述主节点。
7.一种数据页处理装置,其特征在于,包括:
接收模块,用于接收从节点发送的第一应用日志序号,所述第一应用日志序号由所述从节点应用第一数据页对应的第一重做日志后得到;
确定模块,用于从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;
标识模块,用于当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第一数据页标识为可持久化。
8.一种数据页处理装置,其特征在于,包括:
接收模块,用于接收主节点对第二数据页持久化操作后发送的数据页淘汰指令,所述数据页淘汰指令包括第二数据页对应的数据页标识及第二持久化日志序号;
查询模块,用于查询所述数据页标识对应的第三数据页;
标识模块,用于当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
9.一种数据页处理系统,其特征在于,包括:相互连接的主节点以及至少一个从节点,所述主节点和从节点分别与存储层连接;
所述从节点,用于在应用第一数据页对应的第一重做日志后得到第一应用日志序号,并将所述第一应用日志序号发送到所述主节点;
所述主节点,用于从所有所述从节点发送的第一应用日志序号中确定最小应用日志序号;当确定所述最小应用日志序号大于或等于上一次数据页持久化操作对应的第一持久化日志序号时,将当前变更操作后的第二数据页标识为可持久化。
10.根据权利要求9所述的系统,其特征在于,
所述主节点,还用于当对所述第二数据页的持久化操作执行完毕后,生成包括所述第二数据页对应的数据页标识及第二持久化日志序号的数据页淘汰指令;将所述数据页淘汰指令发送到所述从节点;
所述从节点,还用于接收所述数据页淘汰指令;查询所述数据页标识对应的第三数据页;当所述第三数据页对应的第三应用日志序号大于或等于所述第二持久化日志序号时,将所述第二数据页标识为可从强制缓存队列中淘汰。
11.根据权利要求9所述的系统,其特征在于,所述主节点,还用于当进行对数据页的第一变更操作后,得到第一数据页,将所述第一变更操作对应的第一重做日志写入存储层;生成第一通知消息,所述通知消息包括所述第一重做日志在所述存储层中的第一偏移量;将所述第一通知消息发送到所述从节点;
所述从节点,还用于根据所述第一偏移量从所述存储层读取所述第一重做日志,对所述第一重做日志进行应用后得到所述第一数据页,生成第一应用日志序号,并将所述第一数据页加入到所述从节点的强制缓存队列。
12.根据权利要求9所述的系统,其特征在于,所述主节点,还用于将所述第二数据页对应的持久化标识置为有效;当对所述第二数据页的持久化操作执行完毕后,将所述持久化标识清零。
13.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1-6任一项所述的方法步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956140.1A CN112100141A (zh) | 2020-09-11 | 2020-09-11 | 一种数据页处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956140.1A CN112100141A (zh) | 2020-09-11 | 2020-09-11 | 一种数据页处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100141A true CN112100141A (zh) | 2020-12-18 |
Family
ID=73752319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010956140.1A Pending CN112100141A (zh) | 2020-09-11 | 2020-09-11 | 一种数据页处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100141A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114370A (zh) * | 2022-01-20 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 主从数据库的同步方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005168A1 (en) * | 2010-06-30 | 2012-01-05 | Microsoft Corporation | Logical Recovery with Unbundled Transaction Services |
US20120226668A1 (en) * | 2011-03-04 | 2012-09-06 | Microsoft Corporation | Managing database recovery time |
CN110543386A (zh) * | 2019-09-16 | 2019-12-06 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、设备和存储介质 |
CN111046024A (zh) * | 2019-12-16 | 2020-04-21 | 上海达梦数据库有限公司 | 一种共享存储数据库的数据处理方法、装置、设备及介质 |
-
2020
- 2020-09-11 CN CN202010956140.1A patent/CN112100141A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005168A1 (en) * | 2010-06-30 | 2012-01-05 | Microsoft Corporation | Logical Recovery with Unbundled Transaction Services |
US20120226668A1 (en) * | 2011-03-04 | 2012-09-06 | Microsoft Corporation | Managing database recovery time |
CN110543386A (zh) * | 2019-09-16 | 2019-12-06 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、设备和存储介质 |
CN111046024A (zh) * | 2019-12-16 | 2020-04-21 | 上海达梦数据库有限公司 | 一种共享存储数据库的数据处理方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
陈游?;朱博弘;韩银俊;屠要峰;舒继武;: "一种持久性内存文件系统数据页的混合管理机制", 计算机研究与发展, no. 02 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114370A (zh) * | 2022-01-20 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 主从数据库的同步方法、装置、电子设备和存储介质 |
CN115114370B (zh) * | 2022-01-20 | 2023-06-13 | 腾讯科技(深圳)有限公司 | 主从数据库的同步方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3726365B1 (en) | Data processing method and device | |
CN108234641B (zh) | 基于分布式一致性协议实现的数据读写方法及装置 | |
JP3593366B2 (ja) | デ−タベ−ス管理方法 | |
WO2021077934A1 (zh) | 基于分布式逻辑时间戳的分布式事务管理方法及系统 | |
US7028150B2 (en) | Arrangement of data within cache lines so that tags are first data received | |
JP2009282746A (ja) | データ管理プログラム、データ管理方法、及びデータ管理装置 | |
CN110677280B (zh) | 服务节点切换方法、装置、设备及计算机可读存储介质 | |
CN111124255A (zh) | 数据存储方法、电子设备和计算机程序产品 | |
CN111444039B (zh) | 缓存数据回退方法以及缓存数据回退装置 | |
CN112100141A (zh) | 一种数据页处理方法、装置及系统 | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
CN110737392A (zh) | 管理存储系统中的地址的方法、设备和计算机程序产品 | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
WO2022134638A1 (zh) | 一种逻辑时钟同步方法、装置及一种中心授时集群 | |
EP3624462B1 (en) | Data management system | |
WO2019055201A1 (en) | PROVIDING COHERENCE IN A DISTRIBUTED DATA STORE | |
CN113407639A (zh) | 数据处理方法、装置、系统及存储介质 | |
US20150169356A1 (en) | Transaction processing system | |
CN112035418A (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
CN112749172A (zh) | 一种缓存与数据库之间的数据同步方法及系统 | |
CN111611223A (zh) | 非易失性数据的访问方法、系统、电子设备和介质 | |
CN115858668A (zh) | 分布式事务处理方法、装置、电子装置及存储介质 | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
CN114265900A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110674156B (zh) | 多机房数据的同步方法、计算设备及计算机存储介质 |
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 |