CN116028437B - 文件读取方法、装置、raid卡、存储***及存储介质 - Google Patents
文件读取方法、装置、raid卡、存储***及存储介质 Download PDFInfo
- Publication number
- CN116028437B CN116028437B CN202310318544.1A CN202310318544A CN116028437B CN 116028437 B CN116028437 B CN 116028437B CN 202310318544 A CN202310318544 A CN 202310318544A CN 116028437 B CN116028437 B CN 116028437B
- Authority
- CN
- China
- Prior art keywords
- target file
- preset
- reading
- file
- memory pool
- 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
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 abstract description 8
- 238000004364 calculation method Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件读取方法、装置、RAID卡、存储***及存储介质,属于存储***领域,用于对存储***中的文件进行读取。考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
Description
技术领域
本发明涉及存储***领域,特别是涉及一种文件读取方法,本发明还涉及一种文件读取装置、RAID卡、存储***及计算机可读存储介质。
背景技术
存储***中涉及到多种数据处理任务,除了前台主机的IO任务外还有巡读、重构以及一致性等各种类型的后台任务,为了防止同时对磁盘中某个条带中的数据进行使用,每个任务在执行之前都需要获取待使用条带的锁权限,从而保证仅具有待使用条带锁权限的唯一任务线程才能够对待使用条带的数据进行使用,然而在这种情况下,若同时期存在的多个任务线程涉及到同一待使用条带,那么不具备待使用条带锁权限的任务线程便只能挂起等待,降低了数据处理效率,且大量任务均需要对“锁功能”进行使用,也耗费了大量的计算资源。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种文件读取方法,可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源;本发明的另一目的是提供一种文件读取装置、RAID卡、存储***及计算机可读存储介质,可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
为解决上述技术问题,本发明提供了一种文件读取方法,应用于存储***中的控制设备,包括:
响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件;
若不存在,在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端。
优选地,所述在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端具体为:
将所述目标文件从磁盘中读取至预设内存池;
将位于所述预设内存池中的所述目标文件发送至所述目标文件的请求端;
其中,所述预设内存池独立于所述缓存模块。
优选地,所述在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端具体为:
在通过第一线程将所述目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于所述预设内存池中的所述目标文件的页面发送至所述目标文件的请求端。
优选地,所述在通过第一线程将所述目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于所述预设内存池中的所述目标文件的页面发送至所述目标文件的请求端具体为:
通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池;
为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记;
通过第二线程,将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端,并判断最近发出的所述头部页面是否存在所述异步触发标记;
若存在,执行所述通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池的步骤;
若不存在,执行所述通过第二线程,将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端,并判断最近发出的所述头部页面是否存在所述异步触发标记的步骤。
优选地,所述通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池具体为:
在首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取所述目标文件的第一预设子窗口数量个页面至预设内存池;
在非首次从磁盘中读取页面时,通过所述第一线程从磁盘中同时读取所述目标文件的第二预设子窗口数量个页面至所述预设内存池;
所述为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记具体为:
对于首批同时读取到的页面,在位于第一指定子次序的页面打上异步触发标记;
对于非首批同时读取到的页面,在位于第二指定子次序的页面打上所述异步触发标记。
优选地,所述第一预设子窗口数量小于所述第二预设子窗口数量。
优选地,所述第一指定子次序与所述第二指定子次序相同。
优选地,所述响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件具体为:
响应于对于目标文件的读取指令,确定所述目标文件的总数据量;
根据预设的总数据量与窗口数量的对应关系,确定出第一预设子窗口数量以及第二预设子窗口数量;
判断所述存储***的缓存模块中是否存在所述目标文件。
优选地,所述预设的总数据量与窗口数量的对应关系具体为:
在总数据量小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第一取值组合;
在总数据量不小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第二取值组合。
优选地,所述将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端之后,该文件读取方法还包括:
将最近发出的页面从所述预设内存池中释放。
优选地,所述判断所述存储***的缓存模块中是否存在所述目标文件之后,该文件读取方法还包括:
若存在,则将位于所述缓存模块中的所述目标文件发送至所述目标文件的请求端。
优选地,该文件读取方法还包括:
在处理读取指令的过程中,记录所述预设内存池中的最小剩余容量;
控制提示器提示所述最小剩余容量。
优选地,在处理读取指令的过程中,记录所述预设内存池中的最小剩余容量之后,该文件读取方法还包括:
判断所述最小剩余容量是否低于第二预设阈值;
若低于,则控制报警器报警。
优选地,该文件读取方法还包括:
记录接收到的读取指令对应的所述目标文件的总数据量;
确定出当前记录的所有所述总数据量中的最大值;
控制提示器提示所述最大值。
优选地,所述确定出当前记录的所有所述总数据量中的最大值之后,该文件读取方法还包括:
判断所述最大值是否大于第三预设阈值;
若大于,则控制报警器报警。
为解决上述技术问题,本发明还提供了一种文件读取装置,应用于存储***中的控制设备,包括:
判断模块,用于响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件,若不存在,触发执行模块;
所述执行模块,用于在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端。
优选地,所述执行模块包括:
读取模块,用于将所述目标文件从磁盘中读取至预设内存池;
发送模块,用于将位于所述预设内存池中的所述目标文件发送至所述目标文件的请求端;
其中,所述预设内存池独立于所述缓存模块。
为解决上述技术问题,本发明还提供了一种RAID卡,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述文件读取方法的步骤。
为解决上述技术问题,本发明还提供了一种存储***,包括如上所述的RAID卡。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述文件读取方法的步骤。
本发明提供了一种文件读取方法,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
本发明还提供了一种文件读取装置、设备、存储***及计算机可读存储介质,具有如上文件读取方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种文件读取方法的流程示意图;
图2为本发明提供的一种预先读取机制的流程示意图;
图3为本发明提供的另一种预先读取机制的流程示意图;
图4为本发明提供的一种文件读取装置的结构示意图;
图5为本发明提供的一种RAID卡的结构示意图;
图6为本发明提供的一种计算机可读存储介质的结构示意图。
具体实施方式
本发明的核心是提供一种文件读取方法,可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源;本发明的另一核心是提供一种文件读取装置、RAID卡、存储***及计算机可读存储介质,可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明提供的一种文件读取方法的流程示意图,该文件读取方法应用于存储***中的控制设备,包括:
S101:响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件;
具体的,考虑到如上背景技术中的技术问题,又结合考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请欲赋予读操作特殊权限,使得其可以在无视“锁功能”限制的情况下,自由的访问磁盘中的数据,也即无论其他任务线程是否持有目标条带的锁权限,读操作均可以直接对目标条带进行数据读取,也不会造成数据错误或对其他具有目标条带锁权限的任务线程产生干扰,而缓存模块中存储有热数据,为了能够利用到缓存模块的响应速度快的优点,因此本步骤中首先可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,以便根据判断结果触发后续步骤中的动作。
其中,存储***可以为多种类型,本发明实施例在此不做限定。
具体的,缓存模块可以为存储***中原有的缓存模块,本发明实施例在此不做限定。
S102:若不存在,在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端。
具体的,在缓存模块中不存在目标文件的情况下,便需要从磁盘中获取该目标文件,然而在具有诸多任务的存储***中,本领域的常规做法都是通过锁权限保证各个任务线程对于磁盘中某一条带的互斥,也即同时仅有一个任务线程可以引用磁盘中的特定条带,而本发明实施例中考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本本发明实施例可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,避免了读任务的等待,提升了数据处理效率,且减少了对锁功能的使用,节省了计算资源。
本发明提供了一种文件读取方法,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
在上述实施例的基础上:
作为一种优选的实施例,在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端具体为:
将目标文件从磁盘中读取至预设内存池;
将位于预设内存池中的目标文件发送至目标文件的请求端;
其中,预设内存池独立于缓存模块。
具体的,考虑到读任务进程在使用缓存模块时,同样需要对于缓存模块中的内存空间申请锁权限,仍避免不了这部分锁功能的使用,结合考虑到本申请赋予读操作的特殊性,且专属的内存池便可以避免读操作对于缓存模块中内存空间的锁权限的申请,因此本发明实施例中设置了读操作专属的独立于缓存模块的内存池,那么在从磁盘中读取目标文件时,便可以将目标文件从磁盘中读取至预设内存池,然后将位于预设内存池中的目标文件发送至目标文件的请求端,进一步降低了计算资源的消耗,且独立的预设内存池减少了读操作对于缓存模块的干扰。
作为一种优选的实施例,在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端具体为:
在通过第一线程将目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于预设内存池中的目标文件的页面发送至目标文件的请求端。
具体的,考虑到在通过预设内存池从磁盘中读取目标文件的过程中,存在从磁盘中将目标文件读取至预设内存池以及从预设内存池中将目标文件发送至请求端两个动作,因此为了提升工作效率,本发明实施例中可以在通过第一线程将目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于预设内存池中的目标文件的页面发送至目标文件的请求端。
其中,第一线程以及第二线程为互相独立的两个线程。
作为一种优选的实施例,在通过第一线程将目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于预设内存池中的目标文件的页面发送至目标文件的请求端具体为:
通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池;
为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记;
通过第二线程,将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端,并判断最近发出的头部页面是否存在异步触发标记;
若存在,执行通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池的步骤;
若不存在,执行通过第二线程,将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端,并判断最近发出的头部页面是否存在异步触发标记的步骤。
为了更好地对本发明实施例进行说明,请参考图2以及图3,图2为本发明提供的一种预先读取机制的流程示意图,图3为本发明提供的另一种预先读取机制的流程示意图。
具体的,在图2中,每个矩形块代表一个数据量为4KB的页面数据,不带有对角线的矩形块代表不存在数据的空白页面,而带有对角线的矩形块代表存在数据的页面。
具体的,在图3中,T0阶段:主机用户向RAID卡发出读文件命令后,RAID卡控制器想要读取该文件的第一页,而该页不在缓存中,这时RAID卡控制器通过第一线程读取了若干页面数据至预设内存池,并且RAID卡控制器将预读窗口中的第二页标记为PG_Readahead(也即异步触发标记);
T1阶段:当读取到有PG_Readahead标志的第二个页面时,RAID卡控制器触发第一线程工作,在后台读取若干页面数据到预设内存池;
T2和T3阶段:因为这时候预设内存池中还有两个页面可用,所以不需要预先读取操作。因此在T2和T3阶段分别读取预设内存池中的两个页面;
T4阶段:由于T1阶段的第一线程预先读取操作将预设窗口数量中的一页标记为PG_Readahead,在RAID卡控制器遇到该页面时,又触发了一次第一线程的预读操作;
T5、T6、T7、T8阶段:和T2、T3阶段一样,读取上一次预先读取窗口中的页面(在预设内存池)。
具体的,考虑到在从磁盘中读取数据时,一次可以同时读取多个页面从而减少与磁盘的交互次数,提升工作效率,因此本发明实施例中可以每次通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池,而为了适时的触发第一线程工作,可以为为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记,那么在通过第二线程从预设内存池中按照先后次序发送页面的过程中,便可以在发送某个页面的同时触发其上的异步触发标记,从而触发第一线程进行工作,使得第一线程与第二线程相互配合实现:在通过第一线程将目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于预设内存池中的目标文件的页面发送至目标文件的请求端。
其中,预设窗口数量以及指定次序均可以进行自主设定,本发明实施例在此不做限定。
作为一种优选的实施例,通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池具体为:
在首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取目标文件的第一预设子窗口数量个页面至预设内存池;
在非首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取目标文件的第二预设子窗口数量个页面至预设内存池;
为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记具体为:
对于首批同时读取到的页面,在位于第一指定子次序的页面打上异步触发标记;
对于非首批同时读取到的页面,在位于第二指定子次序的页面打上异步触发标记。
具体的,考虑到首次从磁盘中读取页面时,预设内存池中不存在任何关于目标文件的页面的特点,因此可以分别为“首次从磁盘中读取页面”以及“非首次从磁盘中读取页面”设置不同的窗口数量,也即为“首次从磁盘中读取页面”设置第一预设子窗口数量,而为“非首次从磁盘中读取页面”设置第二预设子窗口数量,从而有利于提升数据处理效率。
具体的,同样考虑到首次从磁盘中读取页面时,预设内存池中不存在任何关于目标文件的页面的特点,因此可以分别为“首批同时读取到的页面”以及“非首批同时读取到的页面”设置不同的(异步触发标记对应的)指定次序,也即对于首批同时读取到的页面,在位于第一指定子次序的页面打上异步触发标记;对于非首批同时读取到的页面,在位于第二指定子次序的页面打上异步触发标记,有利于进一步地提升数据处理效率。
作为一种优选的实施例,第一预设子窗口数量小于第二预设子窗口数量。
具体的,第一预设子窗口数量可以小于第二预设子窗口数量,以便第二线程能够尽早的开始执行工作,从而提升工作效率。
当然,除了该种情况下,第一预设子窗口数量与第二预设子窗口数量的大小关系还可以为其他具体类型,本发明实施例在此不做限定。
作为一种优选的实施例,第一指定子次序与第二指定子次序相同。
具体的,为了保持设置的统一性,第一指定子次序与第二指定子次序可以设置为相同的次序,且这两个次序都尽量处于同批页面中靠前的次序,以防止数据断流的情况出现。
当然,除了该种具体情况外,第一指定子次序与第二指定子次序的大小关系还可以为其他具体类型,本发明实施例在此不做限定。
作为一种优选的实施例,响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件具体为:
响应于对于目标文件的读取指令,确定目标文件的总数据量;
根据预设的总数据量与窗口数量的对应关系,确定出第一预设子窗口数量以及第二预设子窗口数量;
判断存储***的缓存模块中是否存在目标文件。
具体的,考虑到对于不同大小的目标文件,可以通过匹配不同的窗口数量来保证数据读取工作的效率,因此本发明实施例中可以响应于对于目标文件的读取指令,确定目标文件的总数据量,然后根据预设的总数据量与窗口数量的对应关系,确定出第一预设子窗口数量以及第二预设子窗口数量。
作为一种优选的实施例,预设的总数据量与窗口数量的对应关系具体为:
在总数据量小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第一取值组合;
在总数据量不小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第二取值组合。
具体的,考虑到两个档次的窗口数量便可以应对两种大小等级的文件读取工作,因此本发明实施例中提供的预设的总数据量与窗口数量的对应关系中,在总数据量小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第一取值组合;在总数据量不小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第二取值组合。
其中,第一预设阈值、第一取值组合以及第二取值组合均可以进行自主设定,本发明实施例在此不做限定。
作为一种优选的实施例,将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端之后,该文件读取方法还包括:
将最近发出的页面从预设内存池中释放。
具体的,考虑到读操作在读取目标文件后,后续对该目标文件再次读取的可能性并不大,且同时为了节省预设内存池所占的容量,本发明实施例中在将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端之后, 可以将最近发出的页面从预设内存池中释放。
作为一种优选的实施例,判断存储***的缓存模块中是否存在目标文件之后,该文件读取方法还包括:
若存在,则将位于缓存模块中的目标文件发送至目标文件的请求端。
具体的,为了进一步提升数据读取效率,在判定存储***的缓存模块中存在目标文件的情况下,便可以将位于缓存模块中的目标文件发送至目标文件的请求端。
作为一种优选的实施例,该文件读取方法还包括:
在处理读取指令的过程中,记录预设内存池中的最小剩余容量;
控制提示器提示最小剩余容量。
具体的,考虑到由于预设内存池容量大小以及数据处理效率等影响,在进行文件读取的过程中预设内存池中可能存在空间够用的风险,为了及时发现这种情况,本发明实施例中可以在处理读取指令的过程中,记录预设内存池中的最小剩余容量,并控制提示器提示最小剩余容量。
其中,提示器可以为多种类型,例如可以为显示器或者网络终端等,本发明实施例在此不做限定。
作为一种优选的实施例,在处理读取指令的过程中,记录预设内存池中的最小剩余容量之后,该文件读取方法还包括:
判断最小剩余容量是否低于第二预设阈值;
若低于,则控制报警器报警。
具体的,考虑到经验不足的工作人员可能无法及时了解到提示出的最小剩余容量的意义,因此为了进一步提升工作效率以及用户体验,本发明实施例中可以自动判断最小剩余容量是否低于第二预设阈值,并在低于时控制报警器报警。
其中,报警器可以为多种类型,例如可以为蜂鸣器等,本发明实施例在此不做限定。
具体的,第二预设阈值可以进行自主设定,本发明实施例在此不做限定。
作为一种优选的实施例,该文件读取方法还包括:
记录接收到的读取指令对应的目标文件的总数据量;
确定出当前记录的所有总数据量中的最大值;
控制提示器提示最大值。
具体的,考虑到存储***中出现的各个读请求对应的目标文件的大小,对于预设内存池的容量设定也具有参考意义,因此本发明实施例中可以记录接收到的读取指令对应的目标文件的总数据量,并确定出当前记录的所有总数据量中的最大值,然后控制提示器提示最大值。
当然,在这里还可以控制提示器提示记录的所有总数据量等,本发明实施例在此不做限定。
作为一种优选的实施例,确定出当前记录的所有总数据量中的最大值之后,该文件读取方法还包括:
判断最大值是否大于第三预设阈值;
若大于,则控制报警器报警。
具体的,考虑到经验不足的工作人员可能无法及时了解到提示出的最大值的意义,因此为了进一步提升工作效率以及用户体验,本发明实施例中可以自动判断最大值是否大于第三预设阈值,并在大于时控制报警器报警。
具体的,第三预设阈值可以进行自主设定,本发明实施例在此不做限定。
请参考图4,图4为本发明提供的一种文件读取装置的结构示意图,该文件读取装置应用于存储***中的控制设备,包括:
判断模块41,用于响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,若不存在,触发执行模块;
执行模块42,用于在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端。
作为一种优选的实施例,执行模块包括:
读取模块,用于将目标文件从磁盘中读取至预设内存池;
发送模块,用于将位于预设内存池中的目标文件发送至目标文件的请求端;
其中,预设内存池独立于缓存模块。
本发明提供了一种文件读取装置,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
对于本发明实施例提供的文件读取装置的介绍请参照前述的文件读取方法的实施例,本发明实施例不再赘述。
请参考图5,图5为本发明提供的一种RAID卡的结构示意图,该RAID卡包括:
存储器51,用于存储计算机程序;
处理器52,用于执行计算机程序时实现如前述实施例中文件读取方法的步骤。
具体的,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机可读指令,该内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。处理器执行存储器中保存的计算机程序时,可以实现以下步骤:响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件;若不存在,在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端。
本发明提供了一种RAID卡,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:将目标文件从磁盘中读取至预设内存池;
将位于预设内存池中的目标文件发送至目标文件的请求端;
其中,预设内存池独立于缓存模块。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:在通过第一线程将目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于预设内存池中的目标文件的页面发送至目标文件的请求端。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池;
为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记;
通过第二线程,将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端,并判断最近发出的头部页面是否存在异步触发标记;
若存在,执行通过第一线程从磁盘中同时读取目标文件的预设窗口数量个页面至预设内存池的步骤;
若不存在,执行通过第二线程,将预设内存池中未发出的次序最前端的头部页面发送至目标文件的请求端,并判断最近发出的头部页面是否存在异步触发标记的步骤。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
在首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取目标文件的第一预设子窗口数量个页面至预设内存池;
在非首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取目标文件的第二预设子窗口数量个页面至预设内存池;
对于首批同时读取到的页面,在位于第一指定子次序的页面打上异步触发标记;
对于非首批同时读取到的页面,在位于第二指定子次序的页面打上异步触发标记。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:第一预设子窗口数量小于第二预设子窗口数量。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:第一指定子次序与第二指定子次序相同。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
响应于对于目标文件的读取指令,确定目标文件的总数据量;
根据预设的总数据量与窗口数量的对应关系,确定出第一预设子窗口数量以及第二预设子窗口数量;
判断存储***的缓存模块中是否存在目标文件。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:在总数据量小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第一取值组合;
在总数据量不小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第二取值组合。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:将最近发出的页面从预设内存池中释放。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:若存在,则将位于缓存模块中的目标文件发送至目标文件的请求端。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:在处理读取指令的过程中,记录预设内存池中的最小剩余容量;
控制提示器提示最小剩余容量。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:判断最小剩余容量是否低于第二预设阈值;
若低于,则控制报警器报警。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:记录接收到的读取指令对应的目标文件的总数据量;
确定出当前记录的所有总数据量中的最大值;
控制提示器提示最大值。
作为一种可选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:判断最大值是否大于第三预设阈值;
若大于,则控制报警器报警。
对于本发明实施例提供的RAID卡的介绍请参照前述的文件读取方法的实施例,本发明实施例不再赘述。
本发明还提供了一种存储***,包括如前述实施例中的RAID卡。
本发明提供了一种存储***,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
对于本发明实施例提供的存储***卡的介绍请参照前述的文件读取方法的实施例,本发明实施例不再赘述。
请参考图6,图6为本发明提供的一种计算机可读存储介质的结构示意图,该计算机可读存储介质60上存储有计算机程序61,计算机程序61被处理器52执行时实现如前述实施例中文件读取方法的步骤。
本发明提供了一种计算机可读存储介质,考虑到读操作并不会对数据产生更改,因此即使在其他任务使用目标文件的过程中对目标文件进行读取,也不会产生数据错误,因此本申请中可以响应于对于目标文件的读取指令,判断存储***的缓存模块中是否存在目标文件,如果不存在,便可以在未申请目标文件所在条带的锁权限的情况下,将从磁盘中读取到的目标文件发送至目标文件的请求端,使得读操作无需再挂起等待,提升了数据处理效率,且免去了读操作对于锁功能的使用,节省了计算资源。
对于本发明实施例提供的计算机可读存储介质的介绍请参照前述的文件读取方法的实施例,本发明实施例不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (18)
1.一种文件读取方法,其特征在于,应用于存储***中的控制设备,包括:
响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件;
若不存在,在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端;
所述在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端具体为:
将所述目标文件从磁盘中读取至预设内存池;
将位于所述预设内存池中的所述目标文件发送至所述目标文件的请求端;
其中,所述预设内存池独立于所述缓存模块,所述预设内存池专供所述存储***中的读操作使用。
2.根据权利要求1所述的文件读取方法,其特征在于,所述在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端具体为:
在通过第一线程将所述目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于所述预设内存池中的所述目标文件的页面发送至所述目标文件的请求端。
3.根据权利要求2所述的文件读取方法,其特征在于,所述在通过第一线程将所述目标文件的页面从磁盘中读取至预设内存池的过程中,通过第二线程按照次序将位于所述预设内存池中的所述目标文件的页面发送至所述目标文件的请求端具体为:
通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池;
为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记;
通过第二线程,将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端,并判断最近发出的所述头部页面是否存在所述异步触发标记;
若存在,执行所述通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池的步骤;
若不存在,执行所述通过第二线程,将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端,并判断最近发出的所述头部页面是否存在所述异步触发标记的步骤。
4.根据权利要求3所述的文件读取方法,其特征在于,所述通过第一线程从磁盘中同时读取所述目标文件的预设窗口数量个页面至预设内存池具体为:
在首次从磁盘中读取页面时,通过第一线程从磁盘中同时读取所述目标文件的第一预设子窗口数量个页面至预设内存池;
在非首次从磁盘中读取页面时,通过所述第一线程从磁盘中同时读取所述目标文件的第二预设子窗口数量个页面至所述预设内存池;
所述为最新同时读取到的一批页面中位于指定次序的页面打上异步触发标记具体为:
对于首批同时读取到的页面,在位于第一指定子次序的页面打上异步触发标记;
对于非首批同时读取到的页面,在位于第二指定子次序的页面打上所述异步触发标记。
5.根据权利要求4所述的文件读取方法,其特征在于,所述第一预设子窗口数量小于所述第二预设子窗口数量。
6.根据权利要求4所述的文件读取方法,其特征在于,所述第一指定子次序与所述第二指定子次序相同。
7.根据权利要求4所述的文件读取方法,其特征在于,所述响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件具体为:
响应于对于目标文件的读取指令,确定所述目标文件的总数据量;
根据预设的总数据量与窗口数量的对应关系,确定出第一预设子窗口数量以及第二预设子窗口数量;
判断所述存储***的缓存模块中是否存在所述目标文件。
8.根据权利要求7所述的文件读取方法,其特征在于,所述预设的总数据量与窗口数量的对应关系具体为:
在总数据量小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第一取值组合;
在总数据量不小于第一预设阈值时,第一预设子窗口数量以及第二预设子窗口数量为第二取值组合。
9.根据权利要求3所述的文件读取方法,其特征在于,所述将所述预设内存池中未发出的次序最前端的头部页面发送至所述目标文件的请求端之后,该文件读取方法还包括:
将最近发出的页面从所述预设内存池中释放。
10.根据权利要求1所述的文件读取方法,其特征在于,所述判断所述存储***的缓存模块中是否存在所述目标文件之后,该文件读取方法还包括:
若存在,则将位于所述缓存模块中的所述目标文件发送至所述目标文件的请求端。
11.根据权利要求1所述的文件读取方法,其特征在于,该文件读取方法还包括:
在处理读取指令的过程中,记录所述预设内存池中的最小剩余容量;
控制提示器提示所述最小剩余容量。
12.根据权利要求11所述的文件读取方法,其特征在于,在处理读取指令的过程中,记录所述预设内存池中的最小剩余容量之后,该文件读取方法还包括:
判断所述最小剩余容量是否低于第二预设阈值;
若低于,则控制报警器报警。
13.根据权利要求1至12任一项所述的文件读取方法,其特征在于,该文件读取方法还包括:
记录接收到的读取指令对应的所述目标文件的总数据量;
确定出当前记录的所有所述总数据量中的最大值;
控制提示器提示所述最大值。
14.根据权利要求13所述的文件读取方法,其特征在于,所述确定出当前记录的所有所述总数据量中的最大值之后,该文件读取方法还包括:
判断所述最大值是否大于第三预设阈值;
若大于,则控制报警器报警。
15.一种文件读取装置,其特征在于,应用于存储***中的控制设备,包括:
判断模块,用于响应于对于目标文件的读取指令,判断所述存储***的缓存模块中是否存在所述目标文件,若不存在,触发执行模块;
所述执行模块,用于在未申请所述目标文件所在条带的锁权限的情况下,将从磁盘中读取到的所述目标文件发送至所述目标文件的请求端;
所述执行模块包括:
读取模块,用于将所述目标文件从磁盘中读取至预设内存池;
发送模块,用于将位于所述预设内存池中的所述目标文件发送至所述目标文件的请求端;
其中,所述预设内存池独立于所述缓存模块,所述预设内存池专供所述存储***中的读操作使用。
16.一种RAID卡,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至14任一项所述文件读取方法的步骤。
17.一种存储***,其特征在于,包括如权利要求16所述的RAID卡。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14任一项所述文件读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318544.1A CN116028437B (zh) | 2023-03-29 | 2023-03-29 | 文件读取方法、装置、raid卡、存储***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310318544.1A CN116028437B (zh) | 2023-03-29 | 2023-03-29 | 文件读取方法、装置、raid卡、存储***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028437A CN116028437A (zh) | 2023-04-28 |
CN116028437B true CN116028437B (zh) | 2023-07-14 |
Family
ID=86070822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310318544.1A Active CN116028437B (zh) | 2023-03-29 | 2023-03-29 | 文件读取方法、装置、raid卡、存储***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028437B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572876B (zh) * | 2018-03-07 | 2020-11-20 | 北京神州绿盟信息安全科技股份有限公司 | 一种读写锁的实现方法及装置 |
KR20210078616A (ko) * | 2019-12-18 | 2021-06-29 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 |
CN111258967A (zh) * | 2020-02-11 | 2020-06-09 | 西安奥卡云数据科技有限公司 | 文件***中数据读取方法、装置及计算机可读存储介质 |
-
2023
- 2023-03-29 CN CN202310318544.1A patent/CN116028437B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116028437A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0671691B1 (en) | Storage controller and bus control method for use therewith | |
US7562180B2 (en) | Method and device for reduced read latency of non-volatile memory | |
KR102236419B1 (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
EP3605341A1 (en) | Controlling performance of a solid state drive | |
CN108959118B (zh) | 一种数据写入的方法及装置 | |
US10585822B2 (en) | Operation method of host system including storage device and operation method of storage device controller | |
US11868780B2 (en) | Central processor-coprocessor synchronization | |
TWI249703B (en) | System and method to coordinate data storage device management operations in a data storage subsystem | |
US20190369919A1 (en) | Task management method and host for electronic storage device | |
WO2008020389A2 (en) | Flash memory access circuit | |
CN116028437B (zh) | 文件读取方法、装置、raid卡、存储***及存储介质 | |
CN112732422B (zh) | 一种Norflash异步擦写方法、装置、设备及介质 | |
CN106844234B (zh) | 数据写入方法及装置、双活*** | |
KR20010050853A (ko) | 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치 | |
WO2015170702A1 (ja) | ストレージ装置と情報処理システム及びストレージ制御方法とプログラム | |
CN111104065A (zh) | 一种文件的存储方法、装置及设备 | |
CN112650445B (zh) | 一种固态硬盘执行Trim的方法和设备 | |
US20120131236A1 (en) | Communication between a computer and a data storage device | |
CN115794750B (zh) | 异步i/o***文件打开/关闭的控制方法、装置及设备 | |
CN108509288B (zh) | 一种数据读写的方法、***、设备及计算机可读存储介质 | |
JP2697254B2 (ja) | リアルタイム処理装置 | |
CN116204134B (zh) | 缓存管理方法、装置、设备、存储***及存储介质 | |
CN114328114A (zh) | 程序异常信息的记录方法、装置、设备及可读存储介质 | |
JP4755232B2 (ja) | コンパイラ | |
JP2571298B2 (ja) | データ管理制御方式 |
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 |