CN111723058A - 一种预读数据缓存方法、装置、设备及存储介质 - Google Patents

一种预读数据缓存方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111723058A
CN111723058A CN202010479026.4A CN202010479026A CN111723058A CN 111723058 A CN111723058 A CN 111723058A CN 202010479026 A CN202010479026 A CN 202010479026A CN 111723058 A CN111723058 A CN 111723058A
Authority
CN
China
Prior art keywords
queue
data
read
reading
target
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.)
Granted
Application number
CN202010479026.4A
Other languages
English (en)
Other versions
CN111723058B (zh
Inventor
王帅阳
李文鹏
张端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Inspur Smart Computing Technology Co Ltd
Original Assignee
Guangdong Inspur Big Data Research Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Inspur Big Data Research Co Ltd filed Critical Guangdong Inspur Big Data Research Co Ltd
Priority to CN202010479026.4A priority Critical patent/CN111723058B/zh
Publication of CN111723058A publication Critical patent/CN111723058A/zh
Priority to US17/927,822 priority patent/US11681623B1/en
Priority to PCT/CN2021/073442 priority patent/WO2021238260A1/zh
Application granted granted Critical
Publication of CN111723058B publication Critical patent/CN111723058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种预读数据缓存方法,该方法包括以下步骤:接收针对目标文件的读取指令;如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中;在二级缓存队列中读取目标预读数据;读取完成后,将目标预读数据从二级缓存队列移入重置队列中;其中,预读队列的失效优先级最低。应用本申请实施例所提供的技术方案,可以保护预读数据的有效性,可以提升整体的预读效率、读性能。本申请还公开了一种预读数据缓存装置、设备及存储介质,具有相应技术效果。

Description

一种预读数据缓存方法、装置、设备及存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种预读数据缓存方法、装置、设备及存储介质。
背景技术
随着计算机技术的快速发展,存储系统逐渐发展起来,其在各行业的应用越来越广泛。存储系统存在可进行大量文件存储的优点,但是同时,也存在文件读取加载慢的问题。在对存储系统中的文件进行读取时,需要查找到待读取的文件所在的存储服务器,然后向该存储服务器获取相应数据。如果都是在有实际的文件读取请求时才进行相应数据的获取,则受限于带宽、磁盘性能等影响,可能会使得数据加载较慢,读取时延较长。
针对这种情况,通常通过文件预读解决数据加载较慢,读取时延较长的问题。对文件进行预读操作之后,将预读数据加载到内存中,后续对该文件进行读或者写操作等时,将会提高数据加载速度,减少读取时延。
在相关技术中,预读数据、写入完成数据、读的数据共用一个缓存队列,整个缓存队列中的数据按照热度进行老化。按照这种方式进行处理,将会导致暂时未被访问的预读数据先被老化处理。但实际上预读数据后期被再次访问的可能性往往高于写入完成的数据或者读过的数据,如果总是先对预读数据进行老化处理,则在有相应文件读取需求时,将无法利用预读数据,使得数据加载速度变慢,读取时延变长,影响系统性能。
发明内容
本申请的目的是提供一种预读数据缓存方法、装置、设备及存储介质,以方便保护预读数据的有效性,提升系统性能。
为解决上述技术问题,本申请提供如下技术方案:
一种预读数据缓存方法,包括:
接收针对目标文件的读取指令;
如果确定预读队列中存在所述目标文件的目标预读数据,则将所述目标预读数据从所述预读队列移入二级缓存队列中;
在所述二级缓存队列中读取所述目标预读数据;
读取完成后,将所述目标预读数据从所述二级缓存队列移入重置队列中;
其中,所述预读队列的失效优先级最低。
在本申请的一种具体实施方式中,在所述接收针对目标文件的读取指令之后,还包括:
在读取未完成的情况下,如果监测到所述目标文件关闭,则将所述预读队列和/或所述二级缓存队列中的所述目标预读数据移入所述重置队列中。
在本申请的一种具体实施方式中,在所述将所述目标预读数据从所述二级缓存队列移入重置队列中之后,还包括:
在读取到所述目标预读数据,要对所述目标预读数据进行写操作的情况下,将所述目标预读数据从所述重置队列移入写队列中。
在本申请的一种具体实施方式中,还包括:
在监测到已用缓存空间超过设定的空间阈值的情况下,按照预设的失效优先级顺序,对所述重置队列、所述二级缓存队列、所述预读队列中的数据进行老化处理。
在本申请的一种具体实施方式中,所述失效优先级顺序从高到低依次为:所述重置队列、所述二级缓存队列、所述预读队列。
在本申请的一种具体实施方式中,所述按照预设的失效优先级顺序,对所述重置队列、所述二级缓存队列、所述预读队列中的数据进行老化处理,包括:
依次对所述重置队列中的每个数据进行老化处理;
在对所述重置队列中的数据进行老化处理的过程中,如果所述已用缓存空间小于或等于所述空间阈值,则停止老化处理操作;
否则,在对所述重置队列中的全部数据进行老化处理之后,依次对所述二级缓存队列中的每个数据进行老化处理;
在对所述二级缓存队列中的数据进行老化处理的过程中,如果所述已用缓存空间小于或等于所述空间阈值,则停止老化处理操作;
否则,在对所述二级缓存队列中的全部数据进行老化处理之后,依次对所述预读队列中的每个数据进行老化处理;
在对所述预读队列中的数据进行老化处理过程中,如果所述已用缓存空间小于或等于所述缓存阈值,则停止老化处理操作。
在本申请的一种具体实施方式中,
所述依次对所述重置队列中的每个数据进行老化处理,包括:
按照热度从低到高的顺序,依次对所述重置队列中的每个数据进行老化处理;
和/或,
所述依次对所述二级缓存队列中的每个数据进行老化处理,包括:
按照存入时长从大到小的顺序,依次对所述二级缓存队列中的每个数据进行老化处理;
和/或,
所述依次对所述预读队列中的每个数据进行老化处理,包括:
按照热度从低到高的顺序,依次对所述预读队列中的每个数据进行老化处理。
一种预读数据缓存装置,包括:
读取指令接收模块,用于接收针对目标文件的读取指令;
数据移入第一模块,用于如果确定预读队列中存在所述目标文件的目标预读数据,则将所述目标预读数据从所述预读队列移入二级缓存队列中;
数据读取模块,用于在所述二级缓存队列中读取所述目标预读数据;
数据移入第二模块,用于读取完成后,将所述目标预读数据从所述二级缓存队列移入重置队列中;
其中,所述预读队列的失效优先级最低。
一种预读数据缓存设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述预读数据缓存方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述预读数据缓存方法的步骤。
应用本申请实施例所提供的技术方案,在接收到针对目标文件的读取指令后,如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中,在二级缓存队列中读取目标预读数据,读取完成后,将目标预读数据从二级缓存队列移入重置队列中,预读队列的失效优先级最低。根据数据可被读的程度,设置多级缓存,保护预读数据的有效性,可以提升整体的预读效率、读性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种预读数据缓存方法的实施流程图;
图2为本申请实施例中一种预读数据缓存的具体过程示意图;
图3为本申请实施例中一种预读数据缓存装置的结构示意图;
图4为本申请实施例中一种预读数据缓存设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的一种预读数据缓存方法的实施流程图,该方法可以包括以下步骤:
S110:接收针对目标文件的读取指令。
存储系统中可以存储大量文件。用户或者其他系统在有文件读取需求时,可以向存储系统发出文件读取请求。
在实际应用中,可以根据读IO确定目标文件是否为待预读的文件,如果是,则可以对目标文件进行预读,获得目标文件的目标预读数据。目标文件为存储系统中的任意一个文件。获得目标预读数据后,可以将目标预读数据存入预读队列中。预读队列中可存储多个预读数据。预读队列可表示为readahead队列。
在接收到针对目标文件的读取指令时,可以先查看内存中的预读队列,确定预读队列中是否存在目标文件的目标预读数据。如果存在,则可以继续执行步骤S120的操作。如果不存在,则表明之前可能未对目标文件进行预读,或者目标文件的目标预读数据已经被做老化处理。在确定预读队列中不存在目标文件的目标预读数据的情况下,无法利用目标预读数据,需要在存储系统的存储服务器中查找目标文件的相关数据,并进行读取。
S120:如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中。
在接收到针对目标文件的读取指令,确定预读队列中存在目标文件的目标预读数据的情况下,表明之前已经对目标文件进行了预读操作,在这种情况下,可以将目标预读数据从预读队列移入二级缓存队列中。
在本申请实施例中,预读队列中存储的数据是对文件进行预读后获得的预读数据,未被实际读取过。当有读业务命中预读队列时,可以将预读队列中的相应数据移入二级缓存队列中。这样可以将未被实际读取过的预读数据和将要被读取的预读数据分别存到不同队列中,通过不同队列进行区分,方便进行数据管理。
在二级缓存队列中,每次触发读时,不进行热度更新,整体按时间老化。
S130:在二级缓存队列中读取目标预读数据。
将目标预读数据从预读队列移入二级缓存队列中之后,可以在二级缓存队列中读取目标预读数据。
S140:读取完成后,将目标预读数据从二级缓存队列移入重置队列中。
本申请实施例设置多个队列进行不同阶段数据的存储。在二级缓存队列中读取目标预读数据,如果读取完成,则可以将目标预读数据从二级缓存队列移入重置队列中。重置队列可表示为reset队列。
预读队列、二级缓存队列、重置队列共用缓存空间,在已用缓存空间超过设定的空间阈值的情况下,需要对队列中的数据进行老化处理,以释放缓存空间,减少已用缓存空间,增加可用缓存空间。不同队列所基于的老化策略可以不同。在本申请实施例中,预读队列的失效优先级最低。即在已用缓存空间超过空间阈值的情况下,先对二级缓存队列和/或重置队列中的数据进行老化处理,在对二级缓存队列和重置队列中的所有数据都进行老化处理之后,如果已用缓存空间还未达到设定要求,再对预读队列中的数据进行老化处理。以保护预读数据的有效性,提升整体的预读效率、读性能。
应用本申请实施例所提供的方法,在接收到针对目标文件的读取指令后,如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中,在二级缓存队列中读取目标预读数据,读取完成后,将目标预读数据从二级缓存队列移入重置队列中,预读队列的失效优先级最低。根据数据可被读的程度,设置多级缓存,保护预读数据的有效性,可以提升整体的预读效率、读性能。
在本申请的一个实施例中,在步骤S110接收针对目标文件的读取指令之后,该方法还可以包括以下步骤:
在读取未完成的情况下,如果监测到目标文件关闭,则将预读队列和/或二级缓存队列中的目标预读数据移入重置队列中。
在本申请实施例中,在接收到针对目标文件的读取指令后,如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中,在二级缓存队列中读取目标预读数据,在这里的每个过程中,目标文件都可能会被关闭,使得对于目标预读数据的读取处于未完成的状态。在这种情况下,目标预读数据可能仍存储在预读队列或者二级缓存队列中,或者部分存储在预读队列部分在二级缓存队列中,可以将预读队列和/或二级缓存队列中的目标预读数据移入重置队列中。
在本申请的一个实施例中,在步骤S140将目标预读数据从二级缓存队列移入重置队列中之后,该方法还可以包括以下步骤:
在读取到目标预读数据,要目标预读数据进行写操作的情况下,将目标预读数据从重置队列移入写队列中。
在本申请实施例中,根据实际需要可以对目标预读数据进行写操作。在读取到目标预读数据,要对目标预读数据进行写操作的情况下,可以将目标预读数据从重置队列移入写队列中,在写队列中进行相应的写操作。以避免在对重置队列中的数据进行老化时,目标预读数据被老化处理。
在本申请的一个实施例中,该方法还可以包括以下步骤:
在监测到已用缓存空间超过设定的空间阈值的情况下,按照预设的失效优先级顺序,对重置队列、二级缓存队列、预读队列中的数据进行老化处理。
在本申请实施例中,可以针对设置的几个队列,预先设定失效优先级顺序,其中,预读队列的失效优先级最低。
同时,可以设定一个空间阈值,在已用缓存空间超过该空间阈值时,认为当前需要对队列中的数据进行失效处理,以释放缓存空间。空间阈值可以根据实际情况进行设定和调整,如设定为与总缓存空间的大小相同,或者为总缓存空间的90%。
预读队列、二级缓存队列、重置队列共享缓存空间,其中保存的数据将会占用缓存空间,随着存储的数据的不断增加,已用缓存空间不断减少。可以对已用缓存空间的大小进行监测。在监测到已用缓存空间超过设定的空间阈值时,可以按照预设的失效优先级顺序,对重置队列、二级缓存队列、预读队列中的数据进行老化处理。具体的,可以利用trim(淘汰失效)原理进行老化处理。
预读队列的失效优先级最低。具体的,失效优先级顺序从高到低可以依次为:重置队列、二级缓存队列、预读队列。
在本申请的一种具体实施方式中,可以依次对重置队列中的每个数据进行老化处理;在对重置队列中的数据进行老化处理的过程中,如果已用缓存空间小于或等于空间阈值,则停止老化处理操作;否则,在对重置队列中的全部数据进行老化处理之后,依次对二级缓存队列中的每个数据进行老化处理;在对二级缓存队列中的数据进行老化处理的过程中,如果已用缓存空间小于或等于空间阈值,则停止老化处理操作;否则,在对二级缓存队列中的全部数据进行老化处理之后,依次对预读队列中的每个数据进行老化处理;在对预读队列中的数据进行老化处理过程中,如果已用缓存空间小于或等于缓存阈值,则停止老化处理操作。
如果失效优先级顺序依次为:重置队列、二级缓存队列、预读队列,则表明重置队列的失效优先级最高,二级缓存队列的失效优先级其次,预读队列的失效优先级最低。
首先,依次对重置队列中的每个数据进行老化处理,具体的,可以按照热度从低到高的顺序,依次对重置队列中的每个数据进行老化处理,以优先保留热度高的数据。在老化处理过程中,不断释放缓存空间,已用缓存空间不断更新。
在这个过程中,如果已用缓存空间小于或等于空间阈值,则表明当前更新后的已用缓存空间足够,可以停止老化处理操作。
否则,在对重置队列中的全部数据进行老化处理之后,依次对二级缓存队列中的每个数据进行老化处理。具体的,可以按照存入时长从大到小的顺序,依次对二级缓存队列中的每个数据进行老化处理。存入时长小的数据,可能正被读取或者将要被读取,被读取几率较大,优先保留存入时长小的数据,可以提高读取效率。在老化处理过程中,仍在不断释放缓存空间,已用缓存空间不断更新。
在这个过程中,如果已用缓存空间小于或等于空间阈值,则表明当前更新后的已用缓存空间足够,可以停止老化处理操作。
否则,在对二级缓存队列中的全部数据进行老化处理之后,依次对预读队列中的每个数据进行老化处理。具体的,可以按照热度从低到高的顺序,依次对预读队列中的每个数据进行老化处理。以优先保留热度高的数据。在老化处理过程中,仍在不断释放缓存空间,已用缓存空间不断更新。
在这个过程中,如果已用缓存空间小于或等于缓存阈值,则停止老化处理操作。
在实际应用中,数据的热度可以根据数据被访问的次数、被访问时刻与当前时刻的距离等进行确定。
图2所示为本申请实施例的一种具体实施过程示意图。
在确定要对目标文件进行预读时,将对目标文件进行预读获得的目标预读数据存入预读队列。在接收到针对目标文件的读取指令时,如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中。即读业务命中预读队列时,将目标预读数据移入二级缓存队列中。当读业务读完二级缓存队列中的目标预读数据时,将目标预读数据移入重置队列中。在读取未完成的情况下,如果监测到目标文件关闭,则将预读队列、二级缓存队列中的目标预读数据移入重置队列中。已用缓存空间超过空间阈值时,利用trim原理对队列中的数据进行老化处理,先对重置队列中的数据按照热度老化策略进行老化处理,仍然超空间阈值,再对二级缓存队列中的数据按照时间老化策略进行老化处理,仍然超阈值,最后对预读队列中的数据按照热度老化策略进行老化处理。
另外,在确定要对目标文件进行预读时,如果目标文件的目标预读数据在重置队列中,则将重置队列中的目标预读数据移入预读队列。
本申请实施例所应用的存储系统具体可以是分布式存储文件系统,针对预读数据,根据数据可被读的程度设置了三级缓存机制,将未被读过的预读数据在预读队列中存储,读的预读数据在二级缓存队列中存储,读完成的预读数据在重置队列中存储,未被读过的预读数据被读的可能性往往高于写入完成的数据或者读过的数据,将预读队列设置为最低的失效优先级,保护了预读数据,增强了预读场景的适应性,尤其是读写混合业务场景,提高了读、预读性能。
相应于上面的方法实施例,本申请实施例还提供了一种预读数据缓存装置,下文描述的预读数据缓存装置与上文描述的预读数据缓存方法可相互对应参照。
参见图3所示,该装置可以包括以下模块:
读取指令接收模块310,用于接收针对目标文件的读取指令;
数据移入第一模块320,用于如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中;
数据读取模块330,用于在二级缓存队列中读取目标预读数据;
数据移入第二模块340,用于读取完成后,将目标预读数据从二级缓存队列移入重置队列中;
其中,预读队列的失效优先级最低。
应用本申请实施例所提供的装置,在接收到针对目标文件的读取指令后,如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中,在二级缓存队列中读取目标预读数据,读取完成后,将目标预读数据从二级缓存队列移入重置队列中,预读队列的失效优先级最低。根据数据可被读的程度,设置多级缓存,保护预读数据的有效性,可以提升整体的预读效率、读性能。
在本申请的一种具体实施方式中,还包括数据移入第三模块,用于:
在接收针对目标文件的读取指令之后,在读取未完成的情况下,如果监测到目标文件关闭,则将预读队列和/或二级缓存队列中的目标预读数据移入重置队列中。
在本申请的一种具体实施方式中,还包括数据移入第四模块,用于:
在将目标预读数据从二级缓存队列移入重置队列中之后,在读取到目标预读数据,要对目标预读数据进行写操作的情况下,将目标预读数据从重置队列移入写队列中。
在本申请的一种具体实施方式中,还包括数据老化模块,用于:
在监测到已用缓存空间超过设定的空间阈值的情况下,按照预设的失效优先级顺序,对重置队列、二级缓存队列、预读队列中的数据进行老化处理。
在本申请的一种具体实施方式中,失效优先级顺序从高到低依次为:重置队列、二级缓存队列、预读队列。
在本申请的一种具体实施方式中,数据老化处理模块,用于:
依次对重置队列中的每个数据进行老化处理;
在对重置队列中的数据进行老化处理的过程中,如果已用缓存空间小于或等于空间阈值,则停止老化处理操作;
否则,在对重置队列中的全部数据进行老化处理之后,依次对二级缓存队列中的每个数据进行老化处理;
在对二级缓存队列中的数据进行老化处理的过程中,如果已用缓存空间小于或等于空间阈值,则停止老化处理操作;
否则,在对二级缓存队列中的全部数据进行老化处理之后,依次对预读队列中的每个数据进行老化处理;
在对预读队列中的数据进行老化处理过程中,如果已用缓存空间小于或等于缓存阈值,则停止老化处理操作。
在本申请的一种具体实施方式中,数据老化处理模块,用于:
按照热度从低到高的顺序,依次对重置队列中的每个数据进行老化处理;
和/或,
按照存入时长从大到小的顺序,依次对二级缓存队列中的每个数据进行老化处理;
和/或,
按照热度从低到高的顺序,依次对预读队列中的每个数据进行老化处理。
相应于上面的方法实施例,本申请实施例还提供了一种预读数据缓存设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述预读数据缓存方法的步骤。
如图4所示,为预读数据缓存设备的组成结构示意图,预读数据缓存设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行预读数据缓存方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
接收针对目标文件的读取指令;
如果确定预读队列中存在目标文件的目标预读数据,则将目标预读数据从预读队列移入二级缓存队列中;
在二级缓存队列中读取目标预读数据;
读取完成后,将目标预读数据从二级缓存队列移入重置队列中;
其中,预读队列的失效优先级最低。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如文件读取功能、队列存储功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如优先级数据、读取状态数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口13可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图4所示的结构并不构成对本申请实施例中预读数据缓存设备的限定,在实际应用中预读数据缓存设备可以包括比图4所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述预读数据缓存方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种预读数据缓存方法,其特征在于,包括:
接收针对目标文件的读取指令;
如果确定预读队列中存在所述目标文件的目标预读数据,则将所述目标预读数据从所述预读队列移入二级缓存队列中;
在所述二级缓存队列中读取所述目标预读数据;
读取完成后,将所述目标预读数据从所述二级缓存队列移入重置队列中;
其中,所述预读队列的失效优先级最低。
2.根据权利要求1所述的方法,其特征在于,在所述接收针对目标文件的读取指令之后,还包括:
在读取未完成的情况下,如果监测到所述目标文件关闭,则将所述预读队列和/或所述二级缓存队列中的所述目标预读数据移入所述重置队列中。
3.根据权利要求1所述的方法,其特征在于,在所述将所述目标预读数据从所述二级缓存队列移入重置队列中之后,还包括:
在读取到所述目标预读数据,要对所述目标预读数据进行写操作的情况下,将所述目标预读数据从所述重置队列移入写队列中。
4.根据权利要求1至3之中任一项所述的方法,其特征在于,还包括:
在监测到已用缓存空间超过设定的空间阈值的情况下,按照预设的失效优先级顺序,对所述重置队列、所述二级缓存队列、所述预读队列中的数据进行老化处理。
5.根据权利要求4所述的方法,其特征在于,所述失效优先级顺序从高到低依次为:所述重置队列、所述二级缓存队列、所述预读队列。
6.根据权利要求5所述的方法,其特征在于,所述按照预设的失效优先级顺序,对所述重置队列、所述二级缓存队列、所述预读队列中的数据进行老化处理,包括:
依次对所述重置队列中的每个数据进行老化处理;
在对所述重置队列中的数据进行老化处理的过程中,如果所述已用缓存空间小于或等于所述空间阈值,则停止老化处理操作;
否则,在对所述重置队列中的全部数据进行老化处理之后,依次对所述二级缓存队列中的每个数据进行老化处理;
在对所述二级缓存队列中的数据进行老化处理的过程中,如果所述已用缓存空间小于或等于所述空间阈值,则停止老化处理操作;
否则,在对所述二级缓存队列中的全部数据进行老化处理之后,依次对所述预读队列中的每个数据进行老化处理;
在对所述预读队列中的数据进行老化处理过程中,如果所述已用缓存空间小于或等于所述缓存阈值,则停止老化处理操作。
7.根据权利要求6所述的方法,其特征在于,
所述依次对所述重置队列中的每个数据进行老化处理,包括:
按照热度从低到高的顺序,依次对所述重置队列中的每个数据进行老化处理;
和/或,
所述依次对所述二级缓存队列中的每个数据进行老化处理,包括:
按照存入时长从大到小的顺序,依次对所述二级缓存队列中的每个数据进行老化处理;
和/或,
所述依次对所述预读队列中的每个数据进行老化处理,包括:
按照热度从低到高的顺序,依次对所述预读队列中的每个数据进行老化处理。
8.一种预读数据缓存装置,其特征在于,包括:
读取指令接收模块,用于接收针对目标文件的读取指令;
数据移入第一模块,用于如果确定预读队列中存在所述目标文件的目标预读数据,则将所述目标预读数据从所述预读队列移入二级缓存队列中;
数据读取模块,用于在所述二级缓存队列中读取所述目标预读数据;
数据移入第二模块,用于读取完成后,将所述目标预读数据从所述二级缓存队列移入重置队列中;
其中,所述预读队列的失效优先级最低。
9.一种预读数据缓存设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述预读数据缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述预读数据缓存方法的步骤。
CN202010479026.4A 2020-05-29 2020-05-29 一种预读数据缓存方法、装置、设备及存储介质 Active CN111723058B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010479026.4A CN111723058B (zh) 2020-05-29 2020-05-29 一种预读数据缓存方法、装置、设备及存储介质
US17/927,822 US11681623B1 (en) 2020-05-29 2021-01-23 Pre-read data caching method and apparatus, device, and storage medium
PCT/CN2021/073442 WO2021238260A1 (zh) 2020-05-29 2021-01-23 一种预读数据缓存方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010479026.4A CN111723058B (zh) 2020-05-29 2020-05-29 一种预读数据缓存方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111723058A true CN111723058A (zh) 2020-09-29
CN111723058B CN111723058B (zh) 2023-07-14

Family

ID=72565575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010479026.4A Active CN111723058B (zh) 2020-05-29 2020-05-29 一种预读数据缓存方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US11681623B1 (zh)
CN (1) CN111723058B (zh)
WO (1) WO2021238260A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021238260A1 (zh) * 2020-05-29 2021-12-02 广东浪潮智慧计算技术有限公司 一种预读数据缓存方法、装置、设备及存储介质
CN114442939A (zh) * 2021-12-31 2022-05-06 苏州浪潮智能科技有限公司 预读数据队列处理方法及电子设备
CN116795877A (zh) * 2023-08-23 2023-09-22 本原数据(北京)信息技术有限公司 数据库的预读方法和装置、计算机设备、存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625805B (zh) * 2022-05-16 2022-09-20 杭州时代银通软件股份有限公司 一种回测配置方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983324A (en) * 1996-03-28 1999-11-09 Hitachi, Ltd. Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
US20080126602A1 (en) * 2006-09-18 2008-05-29 Giora Biran DMA Controller with Support for High Latency Devices
CN102447610A (zh) * 2010-10-14 2012-05-09 中兴通讯股份有限公司 实现报文缓存资源共享的方法和装置
CN109947720A (zh) * 2019-04-12 2019-06-28 苏州浪潮智能科技有限公司 一种文件预读方法、装置、设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639466B2 (en) * 2012-10-30 2017-05-02 Nvidia Corporation Control mechanism for fine-tuned cache to backing-store synchronization
US20150286571A1 (en) 2014-04-04 2015-10-08 Qualcomm Incorporated Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
CN105468305A (zh) 2015-12-09 2016-04-06 浪潮(北京)电子信息产业有限公司 一种数据缓存方法、装置和系统
US9928176B2 (en) 2016-07-20 2018-03-27 Advanced Micro Devices, Inc. Selecting cache transfer policy for prefetched data based on cache test regions
CN111723058B (zh) 2020-05-29 2023-07-14 广东浪潮大数据研究有限公司 一种预读数据缓存方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983324A (en) * 1996-03-28 1999-11-09 Hitachi, Ltd. Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
US20080126602A1 (en) * 2006-09-18 2008-05-29 Giora Biran DMA Controller with Support for High Latency Devices
CN102447610A (zh) * 2010-10-14 2012-05-09 中兴通讯股份有限公司 实现报文缓存资源共享的方法和装置
CN109947720A (zh) * 2019-04-12 2019-06-28 苏州浪潮智能科技有限公司 一种文件预读方法、装置、设备及可读存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021238260A1 (zh) * 2020-05-29 2021-12-02 广东浪潮智慧计算技术有限公司 一种预读数据缓存方法、装置、设备及存储介质
US11681623B1 (en) 2020-05-29 2023-06-20 Guangdong Inspur Smart Computing Technology Co., Ltd. Pre-read data caching method and apparatus, device, and storage medium
CN114442939A (zh) * 2021-12-31 2022-05-06 苏州浪潮智能科技有限公司 预读数据队列处理方法及电子设备
CN114442939B (zh) * 2021-12-31 2023-08-29 苏州浪潮智能科技有限公司 预读数据队列处理方法及电子设备
CN116795877A (zh) * 2023-08-23 2023-09-22 本原数据(北京)信息技术有限公司 数据库的预读方法和装置、计算机设备、存储介质
CN116795877B (zh) * 2023-08-23 2023-12-19 本原数据(北京)信息技术有限公司 数据库的预读方法和装置、计算机设备、存储介质

Also Published As

Publication number Publication date
WO2021238260A1 (zh) 2021-12-02
CN111723058B (zh) 2023-07-14
US11681623B1 (en) 2023-06-20
US20230195629A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
CN111723058A (zh) 一种预读数据缓存方法、装置、设备及存储介质
CN111723057B (zh) 一种文件预读方法、装置、设备及存储介质
CN107391269B (zh) 一种用于通过持久化队列处理消息的方法与设备
US10956072B2 (en) Accelerating concurrent access to a file in a memory-based file system
CN105677236B (zh) 一种存储设备及其存储数据的方法
US4523275A (en) Cache/disk subsystem with floating entry
CN110399101B (zh) 一种磁盘的写操作处理方法、装置、系统及存储介质
US20180052625A1 (en) Storage system, storage control apparatus, and method of controlling a storage device
JP2006512657A (ja) メモリ・コントローラおよびメモリに書き込む方法
CN109582649B (zh) 一种元数据存储方法、装置、设备及可读存储介质
CN114253483B (zh) 基于命令的写缓存管理方法、装置、计算机设备及存储介质
CN117859178A (zh) 用于经由协同方法保护存储器设备的方法和装置
CN118312102A (zh) Io请求处理方法、装置、存储设备及存储介质
CN112540933A (zh) 缓存读写方法、装置及电子设备
CN110058819A (zh) 基于可变缓存管理机制的主机命令处理方法和装置
CN111857600B (zh) 一种数据读写方法及装置
CN103279562B (zh) 一种用于数据库二级缓存的方法、装置及数据库存储系统
CN111880735B (zh) 一种存储系统中数据迁移方法、装置、设备及存储介质
US9384135B2 (en) System and method of caching hinted data
CN110928827B (zh) 一种访问PCIe设备的优化的方法和设备
CN111338567B (zh) 一种基于Protocol Buffer的镜像缓存方法
CN114168225A (zh) 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质
KR101866681B1 (ko) 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치
CN109840217B (zh) 一种缓存资源分配和装置
CN109408202B (zh) 一种lmdb扩展方法及装置

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