CN111290803B - 数据预加载方法、装置、设备及存储介质 - Google Patents
数据预加载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111290803B CN111290803B CN202010102401.3A CN202010102401A CN111290803B CN 111290803 B CN111290803 B CN 111290803B CN 202010102401 A CN202010102401 A CN 202010102401A CN 111290803 B CN111290803 B CN 111290803B
- Authority
- CN
- China
- Prior art keywords
- cluster
- page
- preloading
- data
- task
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据预加载方法、装置、设备及存储介质。该方法包括:从启动页开始逐个扫描数据页;当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。上述技术方案以簇为单位,在扫描当前簇时,根据当前簇确定目标簇,将目标簇提前加载至缓冲区,降低了数据页读写的次数和频率,提高数据加载效率。
Description
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据预加载方法、装置、设备及存储介质。
背景技术
数据库对数据文件的访问涉及磁盘读写操作,利用内存缓冲区可以实现磁盘读写操作的优化,即数据的修改在缓冲区中进行,必要时再进行磁盘读写操作。例如,通过查询语句第一次访问一张大表并进行全表扫描时,需要从磁盘加载该表的所有数据页,如果按照数据页的访问顺序(即根据数据页号)扫描数据页,并依次从磁盘加载数据页到缓冲区,每次只加载一个数据页,则在大表扫描过程中,磁盘读写的次数会非常多,碎片化、高频次的磁盘读写也会严重影响数据加载的速度,数据加载的效率低下,影响数据库操作的性能。
发明内容
本发明提供了一种数据预加载方法、装置、设备及存储介质及系统,以提高数据加载效率。
第一方面,本发明实施例提供了一种数据预加载方法,包括:
从启动页开始逐个扫描数据页;
当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;
将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
进一步的,所述预加载任务包括首次任务和非首次任务;
对于首次任务,所述目标簇包含N个簇,且所述目标簇包含当前簇;
对于非首次任务,所述目标簇包含1个簇,且所述目标簇为所述当前簇之后的第N-1个簇;
当前被预加载至缓冲区的簇的数量保持为N;
其中,N为正整数;
所述非首次任务在所述启动页发生簇切换时生成。
进一步的,还包括:
根据所述启动页的地址计算所述目标簇的描述项;
将所述描述项预加载至所述缓冲区中的描述项控制页中。
进一步的,还包括:
登记所述启动页的地址信息。
进一步的,还包括:
若所述启动页的地址信息不符合所述描述项控制页中预加载的信息,则启动中断任务,所述中断任务用于中断预加载操作并清理已登记的地址信息。
进一步的,在将所述当前簇关联的下一个数据页作为新的启动页之前,还包括:
根据扫描方向从所述当前簇的描述项中读取相邻簇字段;
根据所述相邻簇字段确定下一个数据页。
进一步的,还包括:
生成所述预加载任务的任务信息;
所述任务信息包括:启动页地址、预加载类型、预加载数量、预加载间隔、扫描方向以及预加载任务类型
第二方面,本发明实施例提供了一种数据预加载装置,包括:
扫描模块,用于从启动页开始逐个扫描数据页;
预加载模块,用于当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;
启动模块,用于将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据预加载方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据预加载方法。
本发明实施例提供了一种数据预加载方法、装置、设备及存储介质。该方法包括:从启动页开始逐个扫描数据页;当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应,并将所述当前簇关联的下一个数据页作为新的启动页。上述技术方案以簇为单位,在扫描当前簇时,根据当前簇确定目标簇,将目标簇提前加载至缓冲区,降低了数据页读写的次数和频率,提高数据加载效率。
附图说明
图1为本发明实施例一提供的一种数据预加载方法的流程图;
图2为本发明实施例二提供的一种数据预加载方法的流程图;
图3为本发明实施例三提供的一种数据预加载装置的结构示意图;
图4为本发明实施例四提供的一种设备的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据预加载方法的流程图。本实施例可适用于将数据库中以页为单位存储数据预加载至缓冲区的情况。具体的,该数据预加载方法可以由数据预加载装置执行,该数据预加载装置可以通过软件和/或硬件的方式实现,并集成在设备中。进一步的,设备包括但不限定于:服务器、数据库终端、数据管理设备等。
如图1所示,该方法具体包括如下步骤:
S110、从启动页开始逐个扫描数据页。
具体的,数据库中的数据被格式化成记录保存在数据页(PAGE)中,数据页存放在数据库缓存(BUFFER)中,从磁盘加载数据的最小读写单位是数据页。以扫描B树叶子节点数据页为例,数据页扫描就是按照一定的扫描方向,逐个查找B树叶子节点的数据页,最终将查找到的数据页加载到内存缓冲区中。
S120、当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应。
具体的,簇由页号连续的M(取值为16、32或64)个数据页组成,在磁盘中同一个簇的数据页连续存放在一起。若干个簇组成一个段(SEGMENG),一个段中的簇之间不一定是连续的,利用簇的描述项(DESC)可以将段内的簇关联在一起。本实施例中,从启动页开始,当连续扫描数据页的页数达到预设值M时,完成了一个簇(EXTENT)的扫描,这时通过预加载任务,将数据库缓存中该簇对应的目标簇的所有数据页预加载至缓冲区,从而降低读写操作的次数和频率。例如,在扫描第1个簇时,可以启动一个预加载任务,将前N个簇(包括第1个簇以及与之关联的后续的N-1个簇)都预加载至缓冲区;当扫描至第2个簇时,可以再启动一个预加载任务,继续将第N+1个簇预加载缓冲区;当扫描至第3个簇时,可以继续将第N+2个簇预加载缓冲区,以此类推,之后每扫描完一个簇,都可以提前加载一个后面的簇。在此基础上,对于磁盘的数据处理可以直接利用缓冲区中预加载的数据页实现,提高数据的加载和读写效率。
S130、将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
具体的,当用户创建一张普通表时,系统内部会相应地创建一棵B树或B+树,以B+树为例,一棵B+树通常由2个段构成,一个内节点段,一个叶子段。叶子段中的数据页以记录形式完整地存放了用户数据,内节点段中的数据页则只保存记录的key信息用于构建索引关系。簇和数据页具有连续性,用户插入数据时,会从B+树对应的段中分配簇、页,用于保存数据,数据页之间会通过前向(PREV)或后向(NEXT)指针关联。同一个簇中的数据页在B+树中一般是连续存放的,先后分配的两个簇的数据页,在B+树中也是连续存放的。在数据页扫描和预加载过程中,对于每个簇,可以计算其对应的描述项,以明确与该簇相邻的簇的数据页首页的地址,将其作为新的启动页,切换至对下一个簇的扫描和预加载,在最后一个数据页的扫描完成后,将最后一个簇预加载至缓冲区,从而保证将所有的数据页以簇为单位,按照段内的顺序准确导入缓冲区。
进一步的,还包括:生成预加载任务的任务信息;所述任务信息包括:启动页地址、预加载类型、预加载数量、预加载间隔、扫描方向以及预加载任务类型。
具体的,对于每个预加载任务,生成如下任务信息:该预加载任务对应的启动页地址;预加载类型(本实施例中预加载类型为EXTENT,EXTENT类型是指以簇为单位,预加载整个簇的数据页);预加载数量,表示本次预加载任务需要从磁盘加载多少个簇;预加载间隔,表示每个簇的数据页的页数;扫描方向,如前向扫描和后向扫描;预加载任务类型,如是否首次发起的预加载等。
需要说明的是,通常数据加载过程都是在连续数据页访问时,根据数据页号提前加载后续的数据页,但这种根据数据页号进行的预测并不准确,因为一张表的数据页在数据库文件层面不一定是连续的。而本实施例的数据预加载方法,考虑到数据结构的数据组织特性,利用簇之间的关系预测可能的数据页访问,通过预加载任务,将有效数据页以簇为单位预加载至缓冲区中,减少读写次数,降低磁盘加载对数据扫描的性能影响,提升系统的吞吐量。
本发明实施例一提供的一种数据预加载方法,在连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应,然后以下一个数据页作为新的启动页继续扫描和预加载,根据扫描的方向性和簇的关联性实现了簇的切换,以簇为单位预加载连续的数据页,减少了磁盘中的数据页读写次数,提高数据加载效率,保证数据加载的准确可靠性。
实施例二
图2为本发明实施例二提供的一种数据预加载方法的流程图,本实施例是在上述实施例的基础上进行优化,对各个簇的预加载过程进行具体描述。需要说明的是,未在本实施例中详尽描述的技术细节可参见上述任意实施例。
本实施例中,预加载任务包括首次任务和非首次任务;对于首次任务,所述目标簇包含N个簇,且所述目标簇包含当前簇;对于非首次任务,所述目标簇包含1个簇,且所述目标簇为所述当前簇之后的第N-1个簇;当前被预加载至缓冲区的簇的数量保持为N;其中,N为正整数;所述非首次任务在所述启动页发生簇切换时生成。
具体的,首次任务由异步线程执行,可异步地预加载扫描所得到的前N个簇;从第N+1个簇开始,通过非首次任务进行预加载,非首次任务每次只能将一个簇预加载缓冲区,待一个簇预加载完成后,才能预加载下一个簇,从而保证系统中被预加载至缓冲区的簇维持在一定数量,保证预加载的稳定性和可靠性。例如,系统中当前被预加载至缓冲区的簇的数量保持为N,即:针对第N+1个簇调用非首次任务,该非首次任务需要在前N个簇中的第1个簇预加载完成之后,再开始加载第N+1个簇,此时系统中被预加载至缓冲区的簇仍为N个;从第N+1个簇之后的每个簇,都需要在之前正在预加载的N个簇中的一个簇预加载完成之后才能进行,直至所有数据页扫描完成、所有簇都预加载至缓冲区。
示例性的,以N=8为例,在扫描第1个簇时,启动首次任务,第1个簇对应的目标簇为第1-8个簇;当扫描至第2个簇时(即启动页发生了簇切换,簇切换可根据启动页的描述项发生变化来判定),启动非首次任务,第2个簇对应的目标簇为第9个簇;当扫描至第3个簇时,通过非首次任务预加载第10个簇……以此类推。非首次任务每次只预加载一个任务,且从第9个簇开始,每个簇都需要在正在预加载的簇中的第1个簇的扫描和预加载完成之后才能开始执行,使得当前被预加载至缓冲区的簇的数量保持为N。从第二个启动页开始,每个启动页都对应一次簇切换,都会触发一次非首次任务。
具体的,如图2所示,数据预加载方法具体包括如下步骤:
S201、从启动页开始逐个扫描数据页。
S202、连续扫描数据页的页数达到预设值?若是,则执行S203;否则继续扫描数据页。
本实施例中,在连续扫描数据页的页数达到M时,通过预加载任务将目标簇预加载至缓冲区。例如,对于启动页,设置已连续扫描的页数为初始值(X=0),本簇连续扫描的页数每增加一页,X的值+1;当扫描到第M个数据页时,X=M,此时,这M个数据页都在一个簇(即当前簇)内,通过首次任务可以将该簇后续的数据页及后续若干簇(N-1个簇)预加载至缓冲区。可选的,记录该首次任务所加载的簇的启动页地址(START_PAGE)。
需要说明的是,在一个簇内,根据每个数据页内的指针可以获取下一个数据页的地址;在簇与簇之间,通过簇的描述项可以确定下一簇的首个数据页的地址,从而按照一定的扫描方向逐个扫描数据页;如果当前扫描的数据页所在簇与前一次扫描的数据页在不同的簇内,则发生了簇切换。
S203、当前簇为第一个簇?若是,则执行S204;否则执行S207。
本实施例中,如果当前扫描页所在的簇(即当前簇)为本次数据预加载的第一个簇,则可以通过首次任务进行预加载,首次任务在预加载第一个簇时启动,首次任务用于预加载前N个簇,前N个簇的预加载异步进行;如果不是第一个簇,则通过非首次任务进行预加载,非首次任务每次只能用于预加载一个簇。
S204、已经启动首次任务?若是,则执行S206;否则执行S205。
具体的,已经启动首次任务,说明当前簇不是第一个簇,在当前簇之前已经启动了首次任务,则对于当前簇,可以直接通过所述首次任务进行异步地预加载;如果未启动首次任务,说明当前簇是第一个簇且首次任务还未启动,则需要启动首次任务。
S205、启动首次任务。
S206、通过首次任务将对应的目标簇异步预加载至缓冲区。
S207、通过非首次任务将对应的目标簇异步预加载至缓冲区。
本实施例中,首次任务用于加载前N个簇;首次任务用于从第N+1个簇开始,每次只加载一个簇,该簇为当前簇之后的第N-1个簇。可选的,系统中被预加载至缓冲区的簇的数量维持在N。
S208、登记启动页的地址信息。
具体的,在将当前簇预加载至缓冲区的过程中,登记对应的启动页的地址信息。
S209、根据启动页的地址计算目标簇的描述项。
S210、将描述项预加载至所述缓冲区中的描述项控制页中。
具体的,所述方法还包括:根据启动页的地址计算目标簇的描述项;将描述项预加载至缓冲区中的描述项控制页中。
本实例中,对于每次连续扫描的启动页,计算目标簇的描述项,将目标簇保存在文件的描述项控制页中,即,在描述项控制页中保存了预测的簇的信息,后续预加载过程中,如果预加载的各簇与描述项控制页中预测的信息不一致,可以启动中断机制,避免无效的数据页预加载。一个描述项控制页中可保存多个簇的描述项,每个簇的描述项内容中都包含相邻簇的地址指针,从而形成一个双向链表,用于快速查找相邻簇的数据页地址,并且可以验证预加载的簇的顺序是否符合描述项控制页中的信息,在不符合的情况下及时中断,从而保证预加载的有序正确性。需要说明的是,本实施例不限定S09与S202的执行顺序,计算当前簇的描述项和预加载当前簇可不分先后的进行。
S211、启动页的地址信息符合描述项控制页中预加载的信息?若是,则执行S213;否则执行S212。
具体的,若启动页的地址信息符合描述项控制页中预加载的信息,则继续预加载当前簇并进行信息登记;否则,启动中断任务。
S212、启动中断任务,所述中断任务用于中断预加载操作并清理已登记的地址信息。
具体的,通过中断机制在发现预测错误时,可以及时终止无效的数据页的预加载并清理前面的登记信息,根据描述项控制页加载正确的数据页和簇,从而保证数据预加载的有效性和正确性。
S213、根据扫描方向从当前簇的描述项中读取相邻簇字段。
S214、根据相邻簇字段确定下一个数据页。
具体的,根据扫描方向(前向或后向)从启动页对应的当前簇的描述项中读取相邻簇字段,以明确与该簇相邻的簇的数据页首页的地址,将其作为新的启动页,切换至对下一个簇的扫描和预加载。
S215、存在与当前簇关联的下一个数据页?若是,则执行S216;否则执行执行S217,预加载结束。
具体的,如果存在与当前簇关联的下一个数据页,则切换至下一个簇的扫描和预加载;如果不存在与当前簇关联的下一个数据页,则当前簇的预加载完成后,预加载过程结束。
S216、将当前簇关联的下一个数据页作为新的启动页。
S217、预加载结束。
本实施例中,通过首次任务预加载前N个簇的主要过程包括:
1)根据启动页的地址计算目标簇的描述项(xdesc)地址;
2)将描述项加载到缓冲区的描述项控制页中;
3)通过首次任务将对应的目标簇内的多个数据页预加载至缓冲区;
其中,为了优化性能,2)中加载描述项的操作也可以作为一个异步操作,即2)与3)可不分先后执行,且2)中将每个描述项加载到描述项控制页中的操作,无需等待上一个目标簇的数据预加载完成;
4)登记当前簇的启动页地址信息,如果该信息与描述项控制页不符,则启动中断任务;
5)等待2)中加载描述项的操作完成;
6)根据扫描方向从当前簇的描述项中读取相邻簇字段(NEXT或PREV字段),获取下一个(或前一个)簇的信息,返回1);
7)如果前N个簇预加载完成,从第N+1个簇开始,通过非首次任务进行预加载。
本实施例中,通过非首次任务预加载的主要过程包括:
1)根据启动页的地址计算目标簇的描述项(xdesc)地址;
2)将描述项加载到缓冲区的描述项控制页中;
3)通过一次读写,将对应的目标簇内指定的多个数据页预加载至缓冲区,此步骤不需等待数据页预加载完成;
4)登记预加载的当前簇的首页地址信息,如果该信息与描述项控制页不符,则启动中断任务;
5)目标簇预加载完成后,根据扫描方向从当前簇的描述项中读取相邻簇字段(NEXT或PREV字段),获取下一个(或前一个)簇的信息,返回1)。
本发明实施例二提供的一种数据预加载方法,在上述实施例的基础上进行优化,以簇为单位读取数据,将单页读写转换为连续多页的簇的读写,提高数据加载效率;数据预加载过程由预加载任务启动条件检测、数据异步预加载、中断机制三部分组成,通过预加载任务启动条件检测可及时发现是否需要启动预加载任务,通过数据异步预加载可将预测数据页异步地从磁盘提前加载到系统缓冲区中,通过中断机制可以在发现预测错误时,及时终止无效的数据页预加载并清理前面的登记信息,提高数据加载的可靠性和效率。
实施例三
图3为本发明实施例三提供的一种数据预加载装置的结构示意图。如图3所示,本实施例提供的数据预加载装置包括:
扫描模块310,用于从启动页开始逐个扫描数据页;
预加载模块320,用于当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;
启动模块330,用于将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
本发明实施例三提供的一种数据预加载装置,通过以簇为单位预加载连续的数据页并确定下一个启动页,减少了数据页读写次数,提高数据加载效率。
在上述实施例的基础上,所述预加载任务包括首次任务和非首次任务;
对于首次任务,所述目标簇包含N个簇,且所述目标簇包含当前簇;
对于非首次任务,所述目标簇包含1个簇,且所述目标簇为所述当前簇之后的第N-1个簇;
当前被预加载至缓冲区的簇的数量保持为N;
其中,N为正整数;
所述非首次任务在所述启动页发生簇切换时生成。
进一步的,所述装置还包括:
计算模块,用于根据所述启动页的地址计算所述目标簇的描述项;
控制页加载模块,用于将所述描述项预加载至所述缓冲区中的描述项控制页中。
进一步的,所述装置还包括:
登记模块,用于登记所述启动页的地址信息。
进一步的,所述装置还包括:
中断模块,用于若所述启动页的地址信息不符合所述描述项控制页中预加载的信息,则启动中断任务,所述中断任务用于中断预加载操作并清理已登记的地址信息。
进一步的,所述装置还包括:
读取模块,用于在将所述当前簇关联的下一个数据页作为新的启动页之前,根据扫描方向从所述当前簇的描述项中读取相邻簇字段;
数据页确定模块,用于根据所述相邻簇字段确定下一个数据页。
进一步的,所述装置还包括:
生成模块,用于生成所述预加载任务的任务信息;
所述任务信息包括:启动页地址、预加载类型、预加载数量、预加载间隔、扫描方向以及预加载任务类型
本发明实施例三提供的数据加载装置可以用于执行上述任意实施例提供的数据加载方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种设备的硬件结构示意图。如图4所示,本实施例提供的一种设备,包括:处理器410和存储装置420。该设备中的处理器可以是一个或多个,图4中以一个处理器410为例,所述设备中的处理器410和存储装置420可以通过总线或其他方式连接,图4中以通过总线连接为例。
所述一个或多个程序被所述一个或多个处理器410执行,使得所述一个或多个处理器实现上述实施例中任意所述的数据加载方法。
该设备中的存储装置420作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中数据加载方法对应的程序指令/模块(例如,附图3所示的数据加载装置中的模块,包括:扫描模块310、预加载模块320以及启动模块330)。处理器410通过运行存储在存储装置420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述方法实施例中的数据加载方法。
存储装置420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等(如上述实施例中的预设值、启动页等)。此外,存储装置420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
并且,当上述设备中所包括一个或者多个程序被所述一个或者多个处理器410执行时,进行如下操作:从启动页开始逐个扫描数据页;当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
本实施例提出的设备与上述实施例提出的数据加载方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行数据加载方法相同的有益效果。
在上述实施例的基础上,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被数据加载装置执行时实现本发明上述任意实施例中的数据加载方法,该方法包括:从启动页开始逐个扫描数据页;当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据加载方法操作,还可以执行本发明任意实施例所提供的数据加载方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的数据加载方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种数据预加载方法,其特征在于,包括:
从启动页开始逐个扫描数据页;
当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;
将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成;
所述预加载任务包括首次任务和非首次任务;
对于首次任务,所述目标簇包含N个簇,且所述目标簇包含当前簇;
对于非首次任务,所述目标簇包含1个簇,且所述目标簇为所述当前簇之后的第N-1个簇;
当前被预加载至缓冲区的簇的数量保持为N;
其中,N为正整数;
所述非首次任务在所述启动页发生簇切换时生成。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述启动页的地址计算所述所述目标簇的描述项;
将所述描述项预加载至所述缓冲区中的描述项控制页中。
3.根据权利要求2所述的方法,其特征在于,还包括:
登记所述启动页的地址信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述启动页的地址信息不符合所述描述项控制页中预加载的信息,则启动中断任务,所述中断任务用于中断预加载操作并清理已登记的地址信息。
5.根据权利要求2所述的方法,其特征在于,在将所述当前簇关联的下一个数据页作为新的启动页之前,还包括:
根据扫描方向从所述当前簇的描述项中读取相邻簇字段;
根据所述相邻簇字段确定下一个数据页。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
生成所述预加载任务的任务信息;
所述任务信息包括:启动页地址、预加载类型、预加载数量、预加载间隔、扫描方向以及预加载任务类型。
7.一种数据预加载装置,其特征在于,包括:
扫描模块,用于从启动页开始逐个扫描数据页;
预加载模块,用于当连续扫描数据页的页数达到预设值时,通过预加载任务将目标簇预加载至缓冲区,所述目标簇与当前扫描页所在的当前簇对应;
启动模块,用于将所述当前簇关联的下一个数据页作为新的启动页,重复执行上述扫描操作和预加载操作,直至对最后一个数据页的预加载完成;
所述预加载任务包括首次任务和非首次任务;
对于首次任务,所述目标簇包含N个簇,且所述目标簇包含当前簇;
对于非首次任务,所述目标簇包含1个簇,且所述目标簇为所述当前簇之后的第N-1个簇;
当前被预加载至缓冲区的簇的数量保持为N;
其中,N为正整数;
所述非首次任务在所述启动页发生簇切换时生成。
8.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的数据预加载方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的数据预加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102401.3A CN111290803B (zh) | 2020-02-19 | 2020-02-19 | 数据预加载方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102401.3A CN111290803B (zh) | 2020-02-19 | 2020-02-19 | 数据预加载方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290803A CN111290803A (zh) | 2020-06-16 |
CN111290803B true CN111290803B (zh) | 2023-06-09 |
Family
ID=71023006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102401.3A Active CN111290803B (zh) | 2020-02-19 | 2020-02-19 | 数据预加载方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290803B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648747A (zh) * | 2016-11-14 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 进程预加载处理方法及装置 |
CN109656929A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种雕复关系型数据库文件的方法及装置 |
CN109977168A (zh) * | 2019-03-18 | 2019-07-05 | 武汉达梦数据库有限公司 | 基于数据页预加载的数据库数据同步方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110302224A1 (en) * | 2010-06-08 | 2011-12-08 | Rahav Yairi | Data storage device with preloaded content |
-
2020
- 2020-02-19 CN CN202010102401.3A patent/CN111290803B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648747A (zh) * | 2016-11-14 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 进程预加载处理方法及装置 |
CN109656929A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种雕复关系型数据库文件的方法及装置 |
CN109977168A (zh) * | 2019-03-18 | 2019-07-05 | 武汉达梦数据库有限公司 | 基于数据页预加载的数据库数据同步方法及设备 |
Non-Patent Citations (1)
Title |
---|
李顺芬 ; 陈小刚 ; 周密 ; 李鸽子 ; 王玉婵 ; 宋志棠 ; .基于PCRAM数据页聚簇的缓冲算法.中国集成电路.2014,(Z1),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111290803A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567681B2 (en) | Method and system for synchronizing requests related to key-value storage having different portions | |
CN1979469A (zh) | 索引及其扩展和查询方法 | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
US11748357B2 (en) | Method and system for searching a key-value storage | |
CN109815240B (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
CN111488736B (zh) | 自学习分词方法、装置、计算机设备和存储介质 | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
US10019483B2 (en) | Search system and search method | |
CN111290803B (zh) | 数据预加载方法、装置、设备及存储介质 | |
CN117349235A (zh) | 一种基于LSM-Tree的KV存储系统、电子设备、介质 | |
CN109992708B (zh) | 一种元数据查询的方法、装置、设备以及存储介质 | |
CN114281819A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN111581440B (zh) | 硬件加速b+树操作装置及其方法 | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
CN108984720B (zh) | 基于列存储的数据查询方法、装置、服务器及存储介质 | |
CN107679093B (zh) | 一种数据查询方法及装置 | |
CN112328630A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN112015791A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN112069232B (zh) | 宽带业务覆盖范围的查询方法及装置 | |
CN112905569A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 | |
KR100511164B1 (ko) | 웹 검색엔진에서의 실시간 사용자 질의 분석에 기반한and 연산용 색인데이터의 캐슁 방법 | |
CN111949439A (zh) | 基于数据库的数据文件更新方法和装置 | |
CN117151051A (zh) | 文档处理方法、装置、设备及介质 | |
CN113656406A (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 |