CN115543970B - 数据页处理方法、数据页处理装置、电子设备及存储介质 - Google Patents
数据页处理方法、数据页处理装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115543970B CN115543970B CN202211503079.0A CN202211503079A CN115543970B CN 115543970 B CN115543970 B CN 115543970B CN 202211503079 A CN202211503079 A CN 202211503079A CN 115543970 B CN115543970 B CN 115543970B
- Authority
- CN
- China
- Prior art keywords
- data
- data page
- write
- free space
- page
- 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.)
- Active
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出的数据页处理方法、数据页处理装置、电子设备及存储介质,涉及数据库技术领域。该方法包括:获取待写入数据的数据量;根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页;其中,所述选定数据页用于表示:空闲空间大于或等于所述数据量的所述候选数据页;对所述选定数据页进行写锁处理,得到写锁结果;若所述写锁结果为写锁失败,则根据所述数据量和至少一个所述候选数据页对所述选定数据页进行切换。本申请实施例提高了对选定数据页的选取速度。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据页处理方法、数据页处理装置、电子设备及存储介质。
背景技术
随着智能工业、智能电网、云计算、物联网的发展,数据库所需要存储的数据量越来越大,在一些场景下需要并发批量的写入大量数据。例如在写入智能工业设备产生的时序数据时,现有的数据库无法兼容如此高的数据写入。
目前数据库在进行数据页扩展时,会首先考虑数据页容量使用率的问题,即让多个并发线程的写入能尽量把数据写入现有的数据页中,从而减小冗余空间,提升数据库查询性能。在数据批量并发写入场景下,由于数据写入量飙升,原有的数据页扩展方法会变成写入速度增加的瓶颈。因此,如何提供一种数据页处理方法,提高数据页选取速度,成为了亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提出数据页处理方法、数据页处理装置、电子设备及存储介质,能够提高数据页选取速度。
为实现上述目的,本申请实施例的第一方面提出了一种数据页处理方法,应用于数据库,所述数据库包括空闲空间映射表,所述空闲空间映射表包括至少一个候选数据页,所述方法包括:
获取待写入数据的数据量;
根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页;其中,所述选定数据页用于表示:空闲空间大于或等于所述数据量的所述候选数据页;
对所述选定数据页进行写锁处理,得到写锁结果;
若所述写锁结果为写锁失败,则根据所述数据量和至少一个所述候选数据页对所述选定数据页进行切换。
在一些实施例,所述方法还包括:
若所述写锁结果为写锁成功,则获取所述选定数据页的空闲空间;
若所述选定数据页的空闲空间大于或等于所述数据量,则将待写入数据写入所述选定数据页。
在一些实施例,所述数据库还包括至少一个数据写入线程,所述根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页,包括:
检测每一所述候选数据页的空闲空间;
若所有的所述候选数据页的空闲空间小于所述数据量,通过至少一个所述数据写入线程进行数据页扩展,得到至少一个扩展数据页;
将所述扩展数据页添加至所述空闲空间映射表,得到更新后的所述空闲空间映射表;
根据所述数据量对更新后的所述空闲空间映射表进行搜索,得到所述选定数据页。
在一些实施例,所述通过至少一个所述数据写入线程进行数据页扩展,得到至少一个扩展数据页,包括:
通过至少一个所述数据写入线程获取所述数据库的表文件扩展锁,得到第一选定数据写入线程;其中,所述第一选定数据写入线程用于表示:得到所述表文件扩展锁的所述数据写入线程;
通过所述第一选定数据写入线程进行数据页扩展,得到至少一个所述扩展数据页。
在一些实施例,所述通过至少一个所述数据写入线程进行数据页扩展,得到至少一个扩展数据页,还包括:
若获取不到所述表文件扩展锁,则根据预设的锁定状态对所述空闲空间映射表进行查找,得到中间数据页;所述中间数据页用于表示:所述锁定状态为已锁定的所述候选数据页;
根据所述中间数据页对应的所述数据写入线程得到第二选定数据写入线程;
通过所述第二选定数据写入线程进行数据页扩展,得到至少一个所述扩展数据页。
在一些实施例,所述通过至少一个所述数据写入线程进行数据页扩展,得到至少一个扩展数据页,还包括:
若获取不到所述表文件扩展锁,则通过至少一个所述数据写入线程获取所述数据库的数据写入锁,得到第三选定数据写入线程;其中,所述第三选定数据写入线程用于表示:得到所述数据写入锁的所述数据写入线程;
通过所述第三选定数据写入线程进行数据页扩展,得到至少一个所述扩展数据页。
在一些实施例,所述数据库还包括数据页扩展线程,在所述根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页之前,所述方法包括:
通过所述数据页扩展线程记录预设时段内的所述数据库对数据页的历史扩展数量;
根据所述预设时段和所述历史扩展数量进行数量预测,得到预测扩展数量;
通过所述数据页扩展线程对数据页进行扩展,得到数量为预测扩展数量的扩展数据页;
将所述扩展数据页添加至所述空闲空间映射表。
为实现上述目的,本申请实施例的第二方面提出了一种数据页处理装置,应用于数据库,所述数据库包括空闲空间映射表,所述空闲空间映射表包括至少一个候选数据页,所述装置包括:
获取模块,用于获取待写入数据的数据量;
搜索模块,用于根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页;其中,所述选定数据页用于表示:空闲空间大于或等于所述数据量的所述候选数据页;
写锁模块,用于对所述选定数据页进行写锁处理,得到写锁结果;
切换模块,用于若所述写锁结果为写锁失败,则根据所述数据量和至少一个所述候选数据页对所述选定数据页进行切换。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本申请提出的数据页处理方法、数据页处理装置、电子设备及存储介质,通过数据量筛选出空闲空间大于或等于数据量的候选数据页,将其作为选定数据页。得到选定数据页之后,直接对选定数据页进行写锁处理,并检测得到写锁结果。若写锁结果为写锁失败,则表明该选定数据页不可进行数据写入,则根据数据量再重新对候选数据页进行筛选,以对选定数据页进行切换,提高了对选定数据页的选取速度。
附图说明
图1是本申请一个实施例提供的数据页处理方法的流程图;
图2是本申请另一个实施例提供的数据页处理方法的流程图;
图3是图1中的步骤S102的流程图;
图4是图3中的步骤S302的流程图;
图5是图3中的步骤S302的流程图;
图6是本申请另一个实施例提供的数据页处理方法的流程图
图7是本申请一个实施例提供的应用示例流程图;
图8是本申请实施例提供的数据页处理装置的模块结构框图;
图9是本申请一个实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
随着智能工业、智能电网、云计算、物联网的发展,数据库所需要存储的数据量越来越大,在一些场景下需要并发批量的写入大量数据。例如在写入智能工业设备产生的时序数据时,现有的数据库无法兼容如此高的数据写入。
一般正常的写入,每次只会写入一条或几条数据,那么一个数据页上的数据可能来自多个客户端连接,此时需要对数据页扩展进行严格控制。数据库在进行数据页扩展时,会首先考虑数据页容量使用率的问题,即让多个并发线程的写入能尽量把数据写入现有的数据页中,从而减小冗余空间,提升数据库查询性能。因此,在将一条数据写入数据库时,会先找一个能够存储这条数据的数据页(page),具体是,首先从空闲空间映射表中查找适合的page,如果找到则对page加锁,加锁后再检查page是否有足够空闲空间(防止并发连接使用,导致空间不足)。如果没有找到page或者找到的page的空闲空间都不再满足,则获取表文件扩展锁,然后进行数据页扩展,即可使用扩展后得到的page。
在并发批量写入场景下,一个客户端连接的数据可能会填满几个page,这种高写入负载情况下会有更高的page扩展需求,上述的数据页扩展方法会降低数据写入的速度。因此,如何提供一种数据页处理方法,提高数据写入速度,成为了亟待解决的技术问题。
基于此,本申请实施例提出了数据页处理方法、数据页处理装置、电子设备及存储介质,旨在面对数据并发批量写入场景时,可以快速选取数据页,提高数据写入的速度。
本申请实施例提供的数据页处理方法应用于服务器端中,还可以是运行于终端或服务器端中的软件。服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现数据页处理方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:服务器计算机、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请实施例提供数据页处理方法和数据页处理装置、电子设备、存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的数据页处理方法。
图1是本申请实施例提供的数据页处理方法的一个可选的流程图,该数据页处理方法应用于数据库,数据库包括空闲空间映射表,空闲空间映射表包括至少一个候选数据页,该数据页处理方法可以包括但不限于包括步骤S101至步骤S104。
步骤S101,获取待写入数据的数据量;
步骤S102,根据数据量对空闲空间映射表进行搜索,得到选定数据页;其中,选定数据页用于表示:空闲空间大于或等于数据量的候选数据页;
步骤S103,对选定数据页进行写锁处理,得到写锁结果;
步骤S104,若写锁结果为写锁失败,则根据数据量和至少一个候选数据页对选定数据页进行切换。
本申请实施例所示意的步骤S101至步骤S104,在当数据库需要写入数据时,根据数据量筛选出空闲空间大于或等于数据量的候选数据页,将其作为选定数据页。得到选定数据页之后,直接对选定数据页进行写锁处理,并检测得到写锁结果。若写锁结果为写锁失败,表明该选定数据页不可进行数据写入,则根据数据量再重新对候选数据页进行筛选,以对选定数据页进行切换,提高了对选定数据页的选取速度,并保证了选定数据页的可用性。这样一来,在面对数据并发批量写入场景时,可以快速选取数据页,从而提高数据写入的速度。
在一些实施例的步骤S101中,获取待写入数据的数据量,数据量是指待写入数据所需占用的存储空间大小。具体地,本申请实施例所指的并发批量写入场景可指时序场景。在时序场景下,一般客户端会向数据库插入一批时序数据,该时序数据是指本申请实施例的待写入数据。本申请实施例所指的并发批量写入场景又可指:同时有大量客户端进行数据写入的场景。
在一些实施例的步骤S102中,空闲空间映射表包括至少一个候选数据页。每一候选数据页都有一定的存储空间,而空闲空间是指每一候选数据页中未被占用的存储空间,因而空闲空间又可称为剩余存储空间。根据数据量对空闲空间映射表进行搜索,相当于把数据量与空闲空间进行比较。若候选数据页的空闲空间大于或等于数据量,则说明可以将待写入数据写入该候选数据页。因此,将空闲空间大于或等于数据量的候选数据页作为选定数据页,以便进行数据写入。
在一些实施例的步骤S103中,对选定数据页进行写锁处理,得到写锁结果。
需要说明的是,在得到选定数据页之后,需对选定数据页进行写锁处理,具体地,可获取选定数据页的数据写入锁,根据数据写入锁对选定数据页进行写锁处理,得到写锁结果。在写锁结果为写锁成功的情况下,才能继续对选定数据页进行数据写入,避免其他线程并发读写该选定数据页。因此,在一示例中,在得到选定数据页之后,则对选定数据页进行写锁处理,得到写锁结果。若写锁结果为写锁失败,则一直重复进行写锁处理,直至写锁结果为写锁成功。最后在写锁成功的前提下,再对选定数据页进行数据写入。
可从上述示例中得出,若在写锁结果为写锁失败的情况下,仍然对该选定数据页进行写锁处理,需耗费大量的等待时间,增加了数据写入排队的长度,降低了数据写入的速度。尤其是在大量并发写入时,会引起锁等待时间过长,导致连接吞吐量下降等问题。
因此,在一些实施例的步骤S104中,若写锁结果为写锁失败,不再对该选定数据页进行写锁处理,而是直接更换选定数据页。具体地,是根据数据量和至少一个候选数据页对选定数据页进行切换,以便得到新的选定数据页。
需要说明的是,数据库中存在多个数据写入线程,候选数据页的锁定状态包括已锁定和未锁定。若锁定状态为已锁定,则表明该候选数据页有对应的数据写入线程。若锁定状态为未锁定,则表明候选数据页无对应的数据写入线程。可以理解的是,选定数据页的锁定状态可能是已锁定,也可能是未锁定。一般来说,若对选定数据页进行写锁处理,而写锁结果为写锁失败,极大可能该选定数据页已被其他数据写入线程占用,此时锁定状态为已锁定。若写锁结果为写锁成功,这可能该选定数据页原先的锁定状态为未锁定,因此可以写锁成功。在写锁成功之后,修改锁定状态,以使得选定数据页的锁定状态为已锁定,避免再被其他数据写入线程占用。
参阅图2,在一些实施例中,在步骤S103之后,本申请实施例的数据页处理方法还可以包括但不限于步骤S201至步骤S202:
步骤S201,若写锁结果为写锁成功,则获取选定数据页的空闲空间;步骤S202,若选定数据页的空闲空间大于或等于数据量,则将待写入数据写入选定数据页。
本申请实施例所示意的步骤S201至步骤S202,在写锁结果为写锁成功的情况下,需检查选定数据页是否有足够的空闲空间,主要是避免在对选定数据页进行写锁处理的过程中,有其他的数据写入线程并发使用该选定数据页,导致空闲空间不足。在空闲空间大于或等于数据量的情况下,将待写入数据写入选定数据页,完成数据写入。
需要说明的是,若空闲空间小于数据量,则说明选定数据页无法承载待写入数据,则需更换选定数据页。对选定数据页进行切换,相当于根据数据量对空闲空间映射表进行再次搜索,但在并发批量写入场景中,可能空闲空间映射表中的候选数据页都不满足空闲空间大于或等于数据量的条件,此时,需进行数据页扩展,以便对空闲空间映射表进行更新,能够有更多的候选数据页。
参阅图3,在一些实施例中,数据库还包括至少一个数据写入线程,步骤S102可以包括但不限于步骤S301至步骤S304:
步骤S301,检测每一候选数据页的空闲空间;
步骤S302,若所有的候选数据页的空闲空间小于数据量,通过至少一个数据写入线程进行数据页扩展,得到至少一个扩展数据页;
步骤S303,将扩展数据页添加至空闲空间映射表,得到更新后的空闲空间映射表;
步骤S304,根据数据量对更新后的空闲空间映射表进行搜索,得到选定数据页。
本申请实施例所示意的步骤S301至步骤S304,数据写入线程一般是用于将待写入数据写入选定数据页,由于候选数据页的空闲空间均小于数据量,此时没有可进行数据写入的候选数据页,从而无法得到选定数据页。通过数据写入线程进行数据页扩展,得到的扩展数据页作为候选数据页并添加至空闲空间映射表。这样一来,就能够对空闲空间映射表进行更新,从而能够有更多的候选数据页,进而能够筛选出空闲空间大于或等于数据量的候选数据页,即得到选定数据页。
参阅图4,在一些实施例中,步骤S302具体包括但不限于步骤S401至步骤S402:
步骤S401,通过至少一个数据写入线程获取数据库的表文件扩展锁,得到第一选定数据写入线程;其中,第一选定数据写入线程用于表示:得到表文件扩展锁的数据写入线程;
步骤S402,通过第一选定数据写入线程进行数据页扩展,得到至少一个扩展数据页。
本申请实施例所示意的步骤S401至步骤S402,数据库包括表文件扩展锁,只有得到表文件扩展锁的数据写入线程,即第一选定数据写入线程才能进行数据页扩展,避免多个数据写入线程并发进行数据页扩展,造成资源浪费。
在一实施例中,在步骤S401的获取表文件扩展锁中,可能一直无法获取成功,此时将无法得到第一选定数据写入线程,从而造成数据页扩展等待时间过长,影响数据写入的速度。
因此,在获取不到表文件扩展锁的情况下,参照图5,在另一实施例中,步骤S302还包括但不限于步骤S501至步骤S503:
步骤S501,若获取不到文件扩展锁,则根据预设的锁定状态对空闲空间映射表进行查找,得到中间数据页;中间数据页用于表示:锁定状态为已锁定的候选数据页;
步骤S502,根据中间数据页对应的数据写入线程得到第二选定数据写入线程;
步骤S503,通过第二选定数据写入线程进行数据页扩展,得到至少一个扩展数据页。
本申请实施例所示意的步骤S501至步骤S503,在数据写入中,一个数据写入线程一般对应一个中间数据页,此时该数据写入线程用于对中间数据页进行数据写入。但在需要进行数据页扩展,且获取不到表文件扩展锁的情况下,需要启用正在进行数据写入的数据写入线程进行数据页扩展。因而在本申请实施例中,是通过先获取锁定状态为已锁定的候选数据页,得到中间数据页,在通过中间数据页获取对应的数据写入线程,得到第二选定数据写入线程,然后根据第二选定数据写入线程进行数据页扩展。本申请实施例能够避免对表文件扩展锁的等待时长,且提高了数据页扩展速度,从而有助于提高数据写入的速度。
在一实施例中,步骤S302还包括但不限于:
若获取不到表文件扩展锁,则通过至少一个数据写入线程获取数据库的数据写入锁,得到第三选定数据写入线程;其中,第三选定数据写入线程用于表示:得到数据写入锁的数据写入线程;
通过第三选定数据写入线程进行数据页扩展,得到至少一个扩展数据页。
具体地,若获取不到表文件扩展锁,不再强制等待,而是直接获取数据库的数据写入锁,得到第三选定数据写入线程,然后再通过第三选定数据写入线程进行数据页扩展。避免对表文件扩展锁的等待时长,提高数据页扩展速度,从而有助于提高数据写入的速度。
需要说明的是,图3至图5的实施例均是由数据写入线程进行数据页扩展,但需要获取表文件扩展锁,以便第一选定数据写入线程,或者需要在获取不到表文件扩展锁的情况下,需通过其他方式确定第二选定数据写入线程或第三选定数据写入线程。这些都需要一定的处理时长,会影响选定数据页的确定,从而影响数据写入的速度。
因此,参阅图6,在一些实施例中,数据库还包括至少一个数据页扩展线程,通过数据页扩展线程提前进行数据页扩展。具体地,在步骤S102之前,数据页处理方法还可以包括但不限于步骤S601至步骤S604:
步骤S601,通过数据页扩展线程记录预设时段内的数据库对数据页的历史扩展数量;
步骤S602,根据预设时段和历史扩展数量进行数量预测,得到预测扩展数量;
步骤S603,通过数据页扩展线程对数据页进行扩展,得到数量为预测扩展数量的扩展数据页;
步骤S604,将扩展数据页添加至空闲空间映射表。
本申请实施例所示意的步骤S601至步骤S604,引入了一个数据页扩展线程,该数据页扩展线程会记录在预设时段内,数据库对数据页的历史扩展数量,然后提前完成数据页扩展,这样可以提高得到选定数据页的选取速度。另外,通过数据页扩展线程提前进行数据页扩展,还可以尽可能不让写入数据线程去做扩展数据页的工作,这样就减少表文件扩展锁的争抢。
需要说明的是,步骤S601中的预设时段可指:一个月、半年或一年。根据预设时段内得到的历史扩展数量可以预测出一天(或半天等其他时间段)应该扩展的量,得到预测扩展数量,由此得出了数据页扩展线程应该扩展的数据页的数量。至于如何进行预测,可根据实际需求进行设置,本申请实施例不作具体限定。
参照图7,在一实施例中,数据页处理方法包括:
开始处理流程;
获取待写入数据的数据量;
根据数据量对空闲空间映射表进行搜索,得到选定数据页;具体包括:检测每一候选数据页的空闲空间,若空闲空间大于或等于数据量,则得到选定数据页;若所有的空闲空间小于数据量,进行数据页扩展。数据页扩展,具体包括:通过至少一个数据写入线程获取数据库的表文件扩展锁,根据得到表文件扩展锁的数据写入线程得到第一选定数据写入线程,通过第一选定数据写入线程进行数据页扩展;或者,若获取不到表文件扩展锁,则根据预设的锁定状态对空闲空间映射表进行查找,得到中间数据页,根据中间数据页对应的数据写入线程得到第二选定数据写入线程,通过第二选定数据写入线程进行数据页扩展;
对选定数据页进行写锁处理,得到写锁结果;
若写锁结果为写锁失败,则根据数据量和至少一个候选数据页对选定数据页进行切换;
若写锁结果为写锁成功,则获取选定数据页的空闲空间,若空闲空间大于或等于数据量,则将待写入数据写入选定数据页。
请参阅图8,本申请实施例还提供数据页处理装置,可以实现上述数据页处理方法,图8为本申请实施例提供的数据页处理装置的模块结构框图,该装置包括:获取模块701、搜索模块702、写锁模块703和切换模块704。其中,获取模块701用于获取待写入数据的数据量;搜索模块702用于根据数据量对空闲空间映射表进行搜索,得到选定数据页;其中,选定数据页用于表示:空闲空间大于或等于数据量的候选数据页;写锁模块703用于对选定数据页进行写锁处理,得到写锁结果;切换模块704用于若写锁结果为写锁失败,则根据数据量和至少一个候选数据页对选定数据页进行切换。
数据页处理装置还包括:写锁成功模块705用于若写锁结果为写锁成功,则获取选定数据页的空闲空间;数据写入模块706用于若选定数据页的空闲空间大于或等于数据量,则将待写入数据写入选定数据页。
需要说明的是,该数据页处理装置的具体实施方式与上述数据页处理方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述数据页处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器801,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器802,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本申请实施例的数据页处理方法;
输入/输出接口803,用于实现信息输入及输出;
通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线805,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息;
其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线805实现彼此之间在设备内部的通信连接。
本申请实施例还提供了存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述数据页处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的数据页处理方法、数据页处理装置、电子设备及存储介质,在当数据库需要写入数据时,根据数据量筛选出空闲空间大于或等于数据量的候选数据页,将其作为选定数据页。得到选定数据页之后,直接对选定数据页进行写锁处理,并检测得到写锁结果。若写锁结果为写锁失败,则表明该选定数据页不可进行数据写入,则根据数据量再重新对候选数据页进行筛选,以对选定数据页进行切换,提高了对选定数据页的选取速度,并保证了选定数据页的可用性。这样一来,在面对数据并发批量写入场景时,可以快速选取数据页,从而提高数据写入的速度。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (8)
1.一种数据页处理方法,其特征在于,应用于数据库,所述数据库包括空闲空间映射表,所述空闲空间映射表包括至少一个候选数据页,所述方法包括:
获取待写入数据的数据量;
根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页;其中,所述选定数据页用于表示:空闲空间大于或等于所述数据量的所述候选数据页;
对所述选定数据页进行写锁处理,得到写锁结果;
若所述写锁结果为写锁失败,则根据所述数据量和至少一个所述候选数据页对所述选定数据页进行切换;
其中,所述数据库还包括至少一个数据写入线程,所述根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页,包括:
检测每一所述候选数据页的空闲空间;
若所有的所述候选数据页的空闲空间小于所述数据量,通过至少一个所述数据写入线程获取所述数据库的表文件扩展锁,得到第一选定数据写入线程;其中,所述第一选定数据写入线程用于表示:得到所述表文件扩展锁的所述数据写入线程;
通过所述第一选定数据写入线程进行数据页扩展,得到至少一个扩展数据页;
将所述扩展数据页添加至所述空闲空间映射表,得到更新后的所述空闲空间映射表;
根据所述数据量对更新后的所述空闲空间映射表进行搜索,得到所述选定数据页。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述写锁结果为写锁成功,则获取所述选定数据页的空闲空间;
若所述选定数据页的空闲空间大于或等于所述数据量,则将待写入数据写入所述选定数据页。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若获取不到所述表文件扩展锁,则根据预设的锁定状态对所述空闲空间映射表进行查找,得到中间数据页;所述中间数据页用于表示:所述锁定状态为已锁定的所述候选数据页;
根据所述中间数据页对应的所述数据写入线程得到第二选定数据写入线程;
通过所述第二选定数据写入线程进行数据页扩展,得到至少一个所述扩展数据页。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若获取不到所述表文件扩展锁,则通过至少一个所述数据写入线程获取所述数据库的数据写入锁,得到第三选定数据写入线程;其中,所述第三选定数据写入线程用于表示:得到所述数据写入锁的所述数据写入线程;
通过所述第三选定数据写入线程进行数据页扩展,得到至少一个所述扩展数据页。
5.根据权利要求1所述的方法,其特征在于,所述数据库还包括数据页扩展线程,在所述根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页之前,所述方法包括:
通过所述数据页扩展线程记录预设时段内的所述数据库对数据页的历史扩展数量;
根据所述预设时段和所述历史扩展数量进行数量预测,得到预测扩展数量;
通过所述数据页扩展线程对数据页进行扩展,得到数量为所述预测扩展数量的扩展数据页;
将所述扩展数据页添加至所述空闲空间映射表。
6.一种数据页处理装置,其特征在于,应用于数据库,所述数据库包括空闲空间映射表,所述空闲空间映射表包括至少一个候选数据页,所述装置包括:
获取模块,用于获取待写入数据的数据量;
搜索模块,用于根据所述数据量对所述空闲空间映射表进行搜索,得到选定数据页;其中,所述选定数据页用于表示:空闲空间大于或等于所述数据量的所述候选数据页;
写锁模块,用于对所述选定数据页进行写锁处理,得到写锁结果;
切换模块,用于若所述写锁结果为写锁失败,则根据所述数据量和至少一个所述候选数据页对所述选定数据页进行切换;
其中,所述数据库还包括至少一个数据写入线程,所述搜索模块用于:
检测每一所述候选数据页的空闲空间;
若所有的所述候选数据页的空闲空间小于所述数据量,通过至少一个所述数据写入线程获取所述数据库的表文件扩展锁,得到第一选定数据写入线程;其中,所述第一选定数据写入线程用于表示:得到所述表文件扩展锁的所述数据写入线程;
通过所述第一选定数据写入线程进行数据页扩展,得到至少一个扩展数据页;
将所述扩展数据页添加至所述空闲空间映射表,得到更新后的所述空闲空间映射表;
根据所述数据量对更新后的所述空闲空间映射表进行搜索,得到所述选定数据页。
7.一种电子设备,其特征在于,所述电子设备包括存储器、处理器、所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的数据页处理方法。
8.一种存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的数据页处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503079.0A CN115543970B (zh) | 2022-11-29 | 2022-11-29 | 数据页处理方法、数据页处理装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503079.0A CN115543970B (zh) | 2022-11-29 | 2022-11-29 | 数据页处理方法、数据页处理装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543970A CN115543970A (zh) | 2022-12-30 |
CN115543970B true CN115543970B (zh) | 2023-03-03 |
Family
ID=84721784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211503079.0A Active CN115543970B (zh) | 2022-11-29 | 2022-11-29 | 数据页处理方法、数据页处理装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543970B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999378A (zh) * | 2012-12-03 | 2013-03-27 | 中国科学院软件研究所 | 一种读写锁实现方法 |
CN108363806A (zh) * | 2018-03-01 | 2018-08-03 | 上海达梦数据库有限公司 | 数据库的多版本并发控制方法、装置、服务器及存储介质 |
CN109376165A (zh) * | 2018-11-14 | 2019-02-22 | 深圳市金证科技股份有限公司 | 内存数据库锁的实现方法和装置及计算机可读存储介质 |
CN114996244A (zh) * | 2022-07-18 | 2022-09-02 | 北京博华信智科技股份有限公司 | 实时数据库系统的控制方法、装置、设备及存储介质 |
CN115061986A (zh) * | 2022-08-17 | 2022-09-16 | 统信软件技术有限公司 | 数据写入方法、数据压缩方法及数据解压方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8725935B2 (en) * | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
CN105631035B (zh) * | 2016-01-04 | 2018-04-17 | 北京百度网讯科技有限公司 | 数据存储方法和装置 |
CN109271258B (zh) * | 2018-08-28 | 2020-11-17 | 百度在线网络技术(北京)有限公司 | 读写锁重入的实现方法、装置、终端及存储介质 |
CN110377436B (zh) * | 2019-07-12 | 2021-04-27 | 清华大学 | 持久性内存的数据存储访问方法、设备及装置 |
US12007971B2 (en) * | 2020-04-27 | 2024-06-11 | Sap Se | Pageable hash index for document store |
CN111930643B (zh) * | 2020-09-28 | 2021-01-12 | 深圳芯邦科技股份有限公司 | 一种数据处理方法及相关设备 |
CN112559386B (zh) * | 2020-12-22 | 2024-06-18 | 深圳忆联信息系统有限公司 | 提升ssd性能的方法、装置、计算机设备及存储介质 |
CN115344537A (zh) * | 2022-06-28 | 2022-11-15 | 广东美的白色家电技术创新中心有限公司 | 存储空间分配的方法、装置、文件系统和存储介质 |
-
2022
- 2022-11-29 CN CN202211503079.0A patent/CN115543970B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999378A (zh) * | 2012-12-03 | 2013-03-27 | 中国科学院软件研究所 | 一种读写锁实现方法 |
CN108363806A (zh) * | 2018-03-01 | 2018-08-03 | 上海达梦数据库有限公司 | 数据库的多版本并发控制方法、装置、服务器及存储介质 |
CN109376165A (zh) * | 2018-11-14 | 2019-02-22 | 深圳市金证科技股份有限公司 | 内存数据库锁的实现方法和装置及计算机可读存储介质 |
CN114996244A (zh) * | 2022-07-18 | 2022-09-02 | 北京博华信智科技股份有限公司 | 实时数据库系统的控制方法、装置、设备及存储介质 |
CN115061986A (zh) * | 2022-08-17 | 2022-09-16 | 统信软件技术有限公司 | 数据写入方法、数据压缩方法及数据解压方法 |
Non-Patent Citations (7)
Title |
---|
Concurrent Updates to Pages with Fixed-Size Rows Using Lock-Free Algorithms;Raghavendra Thallam Kodandaramaih等;《Proceedings of the VLDB Endowment》;20200914;第13卷(第12期);全文 * |
Difference between Shared Lock and Exclusive Lock;ameeshapurswani等;《Geeksforgeeks》;20220925;全文 * |
Understanding Microsoft Jet Locking;Kevin Collins;《FMS》;19960901;全文 * |
一种检测竞争并自调节的动态读写锁;张恒等;《小型微型计算机系统》;20160915(第09期);全文 * |
基于相变存储器和闪存的数据库事务恢复模型;范玉雷等;《计算机学报》;20130815(第08期);全文 * |
浅谈MySQL InnoDB锁;noname;《Segmentfault》;20200118;全文 * |
自适应锁缓冲算法在ONet中的运用;王风雷等;《计算机工程与设计》;20060128(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115543970A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103248667B (zh) | 一种分布式系统的资源访问方法和系统 | |
CN104065636B (zh) | 数据处理方法和系统 | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和系统 | |
US20240314021A1 (en) | Method, apparatus, electronic device and storage medium for resource operation | |
CN115525631A (zh) | 数据库数据迁移方法、装置、设备、存储介质 | |
CN115686881A (zh) | 数据处理方法、装置和计算机设备 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN113656098B (zh) | 配置获取方法及系统 | |
CN111651631A (zh) | 高并发视频数据处理方法、电子设备、存储介质及系统 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN107644020B (zh) | 数据存储和调用的方法及装置 | |
CN115543970B (zh) | 数据页处理方法、数据页处理装置、电子设备及存储介质 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
US9405470B2 (en) | Data processing system and data processing method | |
CN116028226A (zh) | 一种基于量子计算设备dpdk组件图像数据排序方法、存储装置和智能终端 | |
CN115934354A (zh) | 在线存储方法和装置 | |
CN114925078A (zh) | 数据更新方法、系统、电子设备及存储介质 | |
CN115170152A (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN110188006B (zh) | 一种数据维护方法、装置及设备 | |
CN113296913A (zh) | 基于单集群的数据处理方法、装置、设备及存储介质 | |
CN111708631A (zh) | 基于多路服务器的数据处理方法、智能终端及存储介质 | |
CN111147556A (zh) | 一种负载均衡方法、装置、设备及存储介质 | |
CN113946255B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |