数据处理方法、系统、设备、计算机程序产品及存储介质与流程

文档序号:27218441发布日期:2021-11-03 16:04阅读:73来源:国知局
数据处理方法、系统、设备、计算机程序产品及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及数据处理方法、系统、设备、计算机程序产品及存储介质。


背景技术:

2.随着云原生数据库技术的发展,越来越多的用户参与到云技术当中。用户对数据库的数据处理量、处理速度等性能的要求也逐渐提升。
3.数据库中读写节点上对某一数据页的数据进行了修改,但磁盘中的数据页没有及时同步更新,则会导致读写节点上数据页中的数据与磁盘中的数据页的数据不一致,该数据页就称为脏页。为了保证磁盘中与读写节点内存中数据页的数据一致,需要对该数据页进行刷脏处理,即将修改后的数据从读写节点内存中落盘持久化到磁盘的操作。然而,在实际应用中,会存在多种多样的原因导致无法对数据页进行刷脏处理,继而导致线程阻塞,直接影响数据库的性能。


技术实现要素:

4.为解决或改善现有技术中存在的问题,本技术各实施例提供了数据处理方法、系统、设备、计算机程序产品及存储介质。
5.在本技术的一个实施例中,提供了一种数据处理方法。该方法,适用于读写节点,具体包括:
6.数据页不满足写入磁盘的条件时,生成复制页;其中,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间;
7.所述复制页满足写入磁盘的条件,执行将所述磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作。
8.在本技术的另一个实施例中,提供了一种数据处理方法。该方法适用于只读节点,具体的包括:
9.从共享存储中读取日志;
10.将读取到的日志存储到内存中;
11.在确定数据页对应的第一序列标识被更新为复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除;
12.其中,所述复制页是在所述数据页不满足写入磁盘的条件时生成的,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间。
13.在本技术的又一个实施例中,提供了一种数据库系统。该数据库系统包括:
14.读写节点,用于在数据页不满足写入磁盘的条件时,生成复制页;其中,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间;所述复制页满足写入磁盘的条件,并执行将所述磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作;
15.共享存储,具有所述磁盘,用于存储数据页及日志;
16.只读节点,用于从共享存储中读取日志;将读取到的日志存储到内存中;在确定所述数据页对应的所述第一序列标识被更新为所述复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除。
17.在本技术的又一个实施例中,提供了一种电子设备。该电子设备包括:存储器及处理器;其中,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上述数据处理方法中步骤。
18.在本技术的又一个实施例中,提供了一种计算机程序产品。该计算机程序产品包括计算机程序或指令。当所述计算机程序或指令被处理器执行时,致使所述处理器能够实现上述数据处理方法中步骤。
19.在本技术的又一个实施例中,提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述数据处理方法中步骤。
20.通常情况下不能满足写入条件的数据页是频繁被修改的页(即热点页),读写节点频繁的接收到针对该热点页的写请求,因为该写请求一直处于被修改状态,所以该数据页就总不能满足写入磁盘(即落盘)的条件。为此,本技术实施例提供的技术方案中,在出现数据页不满足写入磁盘(即刷脏)条件时,采用复制页机制,该复制页对读写节点来说属于一个不再被修改的页,即第二时间修改对应的日志的第二序列标识固定,不再增加;此时,该复制页定能满足写入磁盘的条件,因此可推进读写节点将数据页写入磁盘(即落盘)的进度,相应的,只读节点也可尽快删除内存中堆积的日志,使其具有接收新日志的能力。
附图说明
21.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本技术一实施例提供的数据库系统的结构示意图;
23.图2为本技术一实施例提供的数据库系统的另一表现形式的结构示意图;
24.图3为本技术一实施例提供的数据处理方法的流程示意图;
25.图4为本技术另一实施例提供的数据处理方法的流程示意图;
26.图5为本技术一实施例提供的数据处理装置的结构示意图;
27.图6为本技术另一实施例提供的数据处理装置的结构示意图;
28.图7为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
29.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
30.在本技术的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下文描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
31.在介绍本技术各实施例之前,先对本文中涉及到的专用名词、术语等进行简要说明。
32.共享存储:是指数据库不同节点在底层使用同一份数据存储,在共享存储的架构下,能够在不增加磁盘存储的情况下,实现更好的扩展读请求负载,能够快速的增加和删除只读节点,并且能在只读节点和读写节点进行实时ha(high availability,高可用性)切换,大大提升了实例的可用性。
33.物理复制:是指mysql数据库通过redolog实现主备数据的同步,区别于原有的binlog主备同步机制,有着更好的同步性能和更低的同步延迟,是polardb的核心技术。
34.redolog,日志(或称为物理日志),记录的是数据页(page)的物理修改,用来将数据页更新为修改后的数据页。其中,redolog(即日志)包含有数据页标识、修改内容、写入时间(或时间戳)等。
35.redolog的应用(apply):使用redolog对数据页进行更新,以将数据页更新为修改后数据页的过程。
36.lsn:一个一直在递增的日志序列号,从实例安装到当前已经产生的日志总量,可以通过lsn计算出其在日志中的位置。每个数据页在写入磁盘(或落盘)时,其最近一次修改的lsn也会记入其中,这样在崩溃恢复时,无需应用(apply)该lsn之前的日志。
37.刷脏:是指数据库中读写节点将修改后的数据页从内存中落盘持久化到磁盘的操作,一般由读写节点后台线程周期对内存中的数据页(page)进行刷脏。
38.热点页:在数据库中一直被频繁修改的page,说明一直有用户请求在频繁的对这个相同或连续的数据进行频繁的更新操作。
39.polardb数据库采用一写多读的架构来服务用户。如图1所示,读写节点负责读写请求,又称之为primary节点,并产生redolog和数据页(page)的持久化,产生的redolog及持久化的数据页都保存在共享存储pfs上。只读节点可以为多个,只负责读请求,又称之为replica节点。只读节点通过读取共享存储上的redolog进行数据页的更新(或回放),将自己缓冲池(buffer pool)中存在的数据页更新为最新修改后的数据页,以便于后续的读请求能及时访问到最新的数据。
40.在polardb的架构中,为了保证用户线程的读请求在只读节点上访问数据页时给用户返回的数据的一致性,读写节点(primary节点)在对数据页p1进行刷脏操作时,需要保
证该数据页p1的最新修改的redolog的lsn不能超过所有只读节点上被应用的redolog的最小lsn,以避免用户在只读节点上访问到过新的数据。这里,被应用的redolog不一定是该数据p1的redolog。举例来说,假设图1所示的数据库系统包含有只读节点1、只读节点2和只读节点n。只读节点1上应用了lsn为a的redolog对数据页p2进行了更新;只读节点2上应用了lsn为b的redolog对数据页p3进行了更新;只读节点n上应用了lsn为c的redolog对数据页p1进行了更新。其中,a<b<c。此时,读写节点需要保证该数据页p1的最新修改的lsn不能超过只读节点1上应用的redolog的lsn=a。
41.因此,为了保证磁盘数据始终保持一致的状态,读写节点在对某一数据页进行刷脏时必须考虑所有只读节点上应用的redolog的lsn,并且受只读节点应用的redolog的lsn来完成数据落盘。
42.把所有只读节点上被应用的redolog的最小lsn定义为safe lsn。读写节点在对该数据页p1进行刷脏处理(flush page)时,一定要保证该数据页p1的最新修改的redolog lsn(new_modification_lsn)要小于safe lsn,不然就不能对该数据页p1进行刷脏落盘,这样就有可能会导致读写节点上的数据页p1无法得到及时刷脏,并且无法推进最老修改的lsn(oldest_flush_lsn)。
43.而在只读节点上,为了加速物理复制的同步效率,新增了运行时应用(runtime apply)的机制。runtime apply是指在应用redolog时,如果数据页p1不在内存(具体的如buffer pool,缓存池)中,将不会应用相应的redolog对这个数据页p1进行更新(或回放),避免了只读节点上后台apply(应用)线程频繁从共享存储读取数据页p1,但是还是需要把解析好的该数据页p1对应的redolog缓存起来,即保存在内存(具体的如parse buffer,解析缓存)中,以便后续用户的读请求到达时读取共享存储上的相应数据页p1,并通过runtime apply应用内存(具体的如parse buffer)中缓存的针对这个数据页p1修改的所有redolog,最终返回最新的数据页。在内存(具体的如parse buffer)中缓存的redolog必须要等到读写节点的oldest_flush_lsn推进之后才能进行清理,即意味着这段redolog修改对应的数据页p1已经落盘,那这段redolog就可以丢掉了。
44.在这种约束下,倘若出现热点page的更新(即new_modification_lsn不停的在更新)或者读写节点刷脏过慢,就会导致只读节点的parse buffer中堆积大量的解析好的该热点page的redolog,同时会影响只读节点的parse buffer和redolog apply性能,导致只读节点的应用redolog的lsn推进过慢,反向又会导致读写节点更加无法刷脏,最终影响用户线程的写入操作。如果读写节点应用redolog的速度慢到一定程度,会导致应用redolog的速度和读写节点产生的redolog差距会越拉越大,导致复制延迟会持续增大。
45.正如上面所讲的,读写节点在对某一数据页进行刷脏时要求写磁盘的数据页对应的最新修改的redolog的lsn不能超过safe lsn。当一个数据页被频繁更新时,就会出现此数据页的最新修改的redolog的lsn(newest_modification_lsn)不断更新,其总也不满足刷脏的条件(即总是大于safe lsn),导致此数据页无法写到磁盘数据文件中,从而无法推进刷新lsn,最终结果是只读节点的redolog堆积在内存(具体的如buffer pool,缓存池)里,使之没有缓冲接收新的写请求。
46.为了解决这个问题,本技术各实施例提供的技术方案引入了复制页(copy page)技术。复制页是当一个数据页在类似于polardb的架构下,即一写多读的架构下,由于不满
足刷脏条件导致其不能及时写入到磁盘数据文件的情况下,临时生成了一个数据的复制页。这个复制页包含有:数据页中的所有数据、最老修改的lsn、最新修改的lsn等。这样就能让该数据页满足刷脏条件以推进该数据页的刷脏过程。
47.图1和图2示出了本技术一实施例提供的数据库系统的结构示意图。如图所示,所述数据库系统包括:
48.读写节点11,用于在数据页不满足写入磁盘的条件时,生成一复制页;其中,所述复制页包含有:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间;所述复制页满足写入磁盘的条件,执行将所述磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作;
49.共享存储13,具有所述磁盘,用于存储数据页及日志;
50.只读节点12,用于从共享存储中读取日志;将读取到的日志存储到内存中;在确定数据页对应的所述第一序列标识被更新为所述复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除。
51.其中,只读节点12可以为多个,以为多个用户提供数据读取服务。例如,在具体实施时,本实施例中所述的数据库系统中还可包含有负责负载均衡、读写分发等功能的装置、设备或模块等。例如,本实施例所述的数据库系统还可包括中间层设备,该中间层设备在接收到多个用户读请求和/或写请求后,会将读请求和写请求进行分类发送,以将写请求发送至读写节点,将读请求发送至只读节点。若读请求为多个,则可按照负载均衡原则将多个读请求分发到不同的只读节点。
52.本实施例所述的数据库节点可以是polardb架构的数据库系统。参见图2所示,在polardb架构的数据库系统中,读写节点和只读节点通过物理复制来同步内存中的状态,由于同步的数据比较少,因此发生复制延迟的概率相比传统的mysql复制还是小很多的。接下来简单介绍一下物理复制的过程:
53.primary节点(即读写节点)会定期向replica节点(即只读节点)发送通知,以告知replica节点可安全读取的日志位点上限(即可读取的日志的最大序列标识)。replica节点在这个周期内,可以安全读取到这个位点以下的日志,如果超过这个位点,可能会读到primary节点正在写的日志。replica节点定期反馈应用日志的位点,表示自己应用到的日志的最大序列标识,小于这个位点的一定已经应用完,大于这个位点的可能还没应用或者正在应用。primary节点当前写到的日志位点和replica节点应用到的位点之差即为复制延迟,如果复制延迟很大,就会导致replica节点跟不上primary节点。
54.图2中读写节点11中的lgwr(log writer,写日志单元),将日志缓缓存区中的所有日志写到共享存储的相应磁盘的日志文件中。该写日志进程在启动实例时自动启动。
55.所述磁盘中存储有数据页对应的第一序列标识,比如,第一序列标识包含在数据页中,此时,读写节点可在所述复制页满足写入磁盘的条件时,执行将所述磁盘中的所述数据页更新为所述复制页的操作,这样便同时完成了标识更新操作及数据信息更新操作(或称为数据落盘操作)。其中,标识更新操作即将数据页对应第一序列标识更新为第二序列标识的操作,该标识更新操作可让只读节点尽快删除内存中堆积的日志,使其具有接收新日志的能力。数据信息更新操作(或称为数据落盘操作)是将磁盘中所述数据页的数据信息更
新为所述复制页包括的所述数据信息的操作,该数据信息更新操作推进了数据页写入磁盘(即落盘)的进度。
56.本系统实施例中的各组成单元,如读写节点11、只读节点12、共享存储13各组成单元的功能及相互间的交互过程可参见如下各方法实施例的描述。
57.图3示出了本技术一实施例提供的数据处理方法的流程示意图。本实施例提供的所述方法适用于上述数据库系统中的读写节点。具体的,所述方法包括:
58.101、数据页不满足写入磁盘的条件时,生成复制页;其中,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间。
59.102、所述复制页满足写入磁盘的条件,执行将所述磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作。
60.上述101中,所述数据页可以是写请求频率大于预设频率的热点页。
61.假设读写节点连续、且不断地接收到数据页p1的写请求,读写节点根据接收到的写请求不断的对p1进行修改,且针对每次修改生成相应的日志,并为各日志赋予一序列标识(如lsn,一个自增序号)。例如,下述表1中列出的p1对应每次写请求后修改得到的数据页及日志分别为:
[0062][0063]
上述各日志后的标识1、2、3、4、5、
……
分别为各日志对应的序列标号(即lsn)。
[0064]
若针对数据页p1的写请求还持续不断的接收到,则数据页p1就需要不断的修改,就会出现最新修改的日志的lsn不断更新,该数据页p1总也不能满足写入磁盘(刷脏或落盘)的条件。为此,本实施例步骤101中,为数据页生成一个复制页。比如上面表所示的例子,生成一个复制页,该复制页包含数据页p1第一时间修改的日志对应的第一序列标识(如lsn=1)、数据页p1第二时间修改的日志对应的第二序列标识(如lsn=5)、以及数据页p1经第一时间至第二时间期间的多次修改后的数据信息(即数据页p15的数据信息)。该复制页被看做是一个不再被修改的页,即复制页的第二时间修改的日志对应的第二序列标识固定,不再变化,此时,判定复制页必定满足写入磁盘条件。
[0065]
本实施例中将磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作,可推进只读节点删除其内存中堆积日志的进度,使其具有接收新日志的能力,而不至于影响其性能。实质上,除了将磁盘中所述对应的所述第一序列标识更新为所述第二序列标识之外,还可将磁盘中的所述数据页更新为所述复制页,以完成数据信息更新操作。即本实施例提供的所述方法,还可包括如下步骤:
[0066]
将所述磁盘中所述数据页更新为所述复制页,以完成数据信息更新操作;
[0067]
其中,所述数据信息更新操作是指将所述磁盘中所述数据页包括的数据信息更新
为所述复制页包括的所述数据信息的操作。
[0068]
在具体实施时,磁盘(即共享存储中的磁盘)中存储的数据页包含序列标识(比如本实施例中提及的所述数据页包含所述第一序列标识),则可直接将磁盘中包含所述第一序列标识的所述数据页更新为所述复制页。简单理解就是,将磁盘中包含所述第一序列标识的所述数据页直接替换为所述复制页。此时,磁盘中关于该数据页的数据信息及lsn,分别变为所述复制页包含的数据信息及第二序列标识(即该复制页的最新修改lsn,newest_modification_lsn),从而推进了读写节点将数据页写入磁盘的进度。即磁盘中存储的所述数据页变更为第二时间修改后的数据信息,完成了数据页的落盘,同时因数据页对应的第一序列标识更新为第二序列标识,对于只读节点来说可尽快删除其内存中堆积日志,使其具有接收新日志的能力,保持较好的性能。
[0069]
如上述表格1所示的例子,还可再生成另一复制页(为区别上述复制页,下文称为拷贝页),该拷贝页包含数据页p1第三时间修改的日志对应的第三序列标识(如lsn=6)、数据页p1第四时间修改的日志对应的第四序列标识(如lsn=10)、以及数据页p1经第三时间至第四时间期间的多次修改后的数据信息(即数据页p1
10
的数据信息)。然后,再执行将磁盘中包含第二序列标识的复制页更新为拷贝页的操作。
[0070]
可见,采用本实施例提供的所述方法,在读写节点后台写入磁盘(或刷脏或落盘)线程进行检查时,数据页不满足检查条件的情况下,本实施例提供了一种复制页机制,因为数据页一直处于被频繁修改的状态,所以会长期处于无法刷脏落盘的情况,但给数据页做一个复制页,这个复制页的最新修改对应日志的第二序列标识固定,因此在后续的检查中该复制页就能满足检查条件进行落盘持久化,并且推动读写节点推进数据页的写入磁盘进度,降低只读节点因数据页迟迟不能写入磁盘出现的日志积压在内存中影响只读节点的性能等问题。在有了复制页这个机制后,再频繁的修改也不会影响数据库系统的稳定性,提升了数据库系统的稳定性。
[0071]
这里需要补充的是:本技术文件中均采用数据页这一概念进行的描述。实际上,针对不同架构的数据库,其存储数据的结构不同,对应在本实施例中的数据名称也会不一样。本实施例中的数据页可替换为数据集、数据项、数据组等等名词,本实施例对此不作具体限定。
[0072]
进一步的,本实施例提供的所述方法还可包括如下步骤:
[0073]
103、获取至少一个只读节点应用的日志的序列标识;
[0074]
104、根据所述至少一个只读节点应用的日志的序列标识,确定安全序列标识;
[0075]
105、所述第二序列标识小于或等于所述安全序列标识时,所述复制页满足写入磁盘的条件。
[0076]
上述104中“根据所述至少一个只读节点应用的日志的序列标识,确定安全序列标识”可具体为:
[0077]
根据所述至少一个只读节点应用的日志的序列标识,确定最小序列标识;
[0078]
将所述最小序列标识作为所述安全序列标识。
[0079]
进一步的,本实施例提供的所述方法还可包括如下步骤:
[0080]
106、定期向至少一个只读节点发送读取日志位点信息,所述读取日志位点信息中包含有只读节点能从共享存储中读取的日志的最大序列标识;
[0081]
107、定期接收所述至少一个只读节点反馈的应用日志位点信息,所述应用日志位点信息中包含有只读节点应用的日志的序列标识。
[0082]
进一步的,本实施例提供的所述方法还可包括如下步骤:
[0083]
108、接收针对所述数据页的写请求;
[0084]
109、根据所述写请求,对内存中的所述数据页进行修改并生成相应的日志;
[0085]
110、为所述日志赋予一序列标识;
[0086]
111、将所述日志发送至共享存储的磁盘中进行存储。
[0087]
图4示出了本技术另一实施例提供的数据处理方法的流程示意图。本实施例提供的所述方法的执行主体可以是上述数据库系统中只读节点。具体的,所述方法包括:
[0088]
201、从共享存储中读取日志;
[0089]
202、将读取到的日志存储到内存中;
[0090]
203、在确定数据页对应的第一序列标识被更新为复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除;
[0091]
其中,所述复制页是在所述数据页不满足写入磁盘的条件时生成的,所述复制页包括:所述数据页的第一时间修改对应日志的所述第一序列标识、所述数据页的第二时间修改对应日志的所述第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间。
[0092]
有关复制页的生成及如何利用复制页更新磁盘中数据页的内容可参见上述实施例中的相应内容,此处不作详述。
[0093]
进一步的,本实施例提供的所述方法还可包括如下步骤:
[0094]
204、接收针对所述数据页的读请求;
[0095]
205、应用内存中存储的所述数据页的第三时间修改对应的日志,以对所述数据页进行修改;其中,所述第三时间晚于所述第二时间;
[0096]
206、响应于所述读请求,反馈修改后的所述数据页。
[0097]
图5示出了本技术一实施例提供的数据处理装置的结构示意图。如图5所示,所述装置包括:生成模块21、执行模块22。其中:
[0098]
生成模块21,用于数据页不满足写入磁盘的条件时,生成复制页;其中,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间;
[0099]
执行模块22,用于所述复制页满足写入磁盘的条件,执行将所述磁盘中所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作。
[0100]
进一步的,所述执行模块22还用于将所述磁盘中所述数据页更新为所述复制页,以完成数据信息更新操作;
[0101]
其中,所述数据信息更新操作是指将所述磁盘中所述数据页包括的数据信息更新为所述复制页包括的所述数据信息的操作。
[0102]
进一步的,本实施例所述的装置还可包括获取模块及确定模块。其中,获取模块用于获取至少一个只读节点应用的日志的序列标识。所述确定模块用于根据所述至少一个只读节点应用的日志的序列标识,确定安全序列标识;所述第二序列标识小于或等于所述安
全序列标识时,所述复制页满足写入磁盘的条件。
[0103]
进一步的,所述确定模块具体用于:根据所述至少一个只读节点应用的日志的序列标识,确定最小序列标识;将所述最小序列标识作为所述安全序列标识。
[0104]
进一步的,所述本实施例提供的所述装置还可包括收发模块。该收发模块用于定期向至少一个只读节点发送读取日志位点信息,所述读取日志位点信息中包含有只读节点能从共享存储中读取的日志的最大序列标识;定期接收所述至少一个只读节点反馈的应用日志位点信息,所述应用日志位点信息中包含有只读节点应用的日志的序列标识。
[0105]
进一步的,本实施例提供的所述装置还包括:处理模块。收发模块用于接收针对所述数据页的写请求。所述处理模块用于根据所述写请求,对内存中的所述数据页进行修改并生成相应的日志;为所述日志赋予一序列标识;将所述日志发送至共享存储的磁盘中进行存储。
[0106]
进一步的,所述数据页为写请求频率大于预设频率的热点页。
[0107]
这里需要说明的是:上述实施例提供的装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
[0108]
图6示出了本技术另一实施例提供的数据处理装置的结构示意图。如图所示,所述装置包括:读取模块31、存储模块32及删除模块33。其中,
[0109]
读取模块31,用于从共享存储中读取日志;
[0110]
存储模块32,用于将读取到的日志存储到内存中;
[0111]
删除模块33,用于在确定数据页对应的第一序列标识被更新为复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除;
[0112]
其中,所述复制页是在所述数据页不满足写入磁盘的条件时生成的,所述复制页包括:所述数据页的第一时间修改对应日志的所述第一序列标识、所述数据页的第二时间修改对应日志的所述第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间。
[0113]
进一步的,本实施例提供的所述装置还可包括:接收模块、修改模块及反馈模块。其中,所述接收模块用于接收针对所述数据页的读请求。所述修改模块用于应用内存中存储的所述数据页的第三时间修改对应的日志,以对所述数据页进行修改;其中,所述第三时间晚于所述第二时间;所述反馈模块用于响应于所述读请求,反馈修改后的所述数据页。
[0114]
这里需要说明的是:上述实施例提供的装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
[0115]
本技术还提供了一种电子设备,如图7所示,该电子设备包括处理器42和存储器41,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行,以用于:
[0116]
数据页不满足写入磁盘的条件时,生成复制页;其中,所述复制页包括:所述数据页的第一时间修改对应日志的第一序列标识、所述数据页的第二时间修改对应日志的第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所
述第一时间早于所述第二时间;
[0117]
所述复制页满足写入磁盘的条件,并执行将所述磁盘中包含所述数据页对应的所述第一序列标识更新为所述第二序列标识的操作。
[0118]
上述存储器41可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在的电子设备上操作的任何应用程序或方法的指令。存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0119]
上述处理器42在执行存储器41中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
[0120]
进一步,如图7所示,电子设备还包括:通信组件43、显示器44、电源组件45、音频组件46等其它组件。图7中仅示意性给出部分组件,并不意味着电子设备只包括图6所示组件。具体实施时,本实施例提供的所述电子设备可以是数据库系统中的读写节点。
[0121]
本技术又一个实施例提供一种电子设备,该电子设备的结构同图7。具体的,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行,以用于:
[0122]
从共享存储中读取日志;
[0123]
将读取到的日志存储到内存中;
[0124]
在确定数据页对应的第一序列标识被更新为复制页包括的第二序列标识后,将所述内存中所述数据页经第一时间至第二时间期间的多次修改分别对应的日志删除;
[0125]
其中,所述复制页是在所述数据页不满足写入磁盘的条件时生成的,所述复制页包括:所述数据页的第一时间修改对应日志的所述第一序列标识、所述数据页的第二时间修改对应日志的所述第二序列标识、所述数据页经所述第一时间至所述第二时间期间的多次修改后的数据信息;所述第一时间早于所述第二时间。
[0126]
上述处理器在执行存储中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
[0127]
相应的,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据处理方法的步骤或功能。
[0128]
本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据处理方法的步骤或功能。
[0129]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0130]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该
计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0131]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1