CN115292247A - 一种文件读取方法、装置、电子设备和存储介质 - Google Patents
一种文件读取方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115292247A CN115292247A CN202211186653.4A CN202211186653A CN115292247A CN 115292247 A CN115292247 A CN 115292247A CN 202211186653 A CN202211186653 A CN 202211186653A CN 115292247 A CN115292247 A CN 115292247A
- Authority
- CN
- China
- Prior art keywords
- file
- read
- group
- target storage
- files
- 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
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件读取方法、装置、电子设备和存储介质,其中,通过索引表去除将得到的每个群组中最后一个存储块中的冗余空间去除,然后通过内存空间,将连续的待读取文件之间的冗余空间去除,经过上述操作,在将文件拷贝到内存中时,由于存在连续的待读取文件,相对于现有技术,本申请在读取时可以减少状态切换的次数,以及硬盘磁头切换的频率,从而有利于提高读取效率,且由于内存空间中仅包括所有的待读取文件的有效数据,因此在对内存空间中的数据进行读取时,进而进一步提高了提高读取效率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种文件读取方法、装置、电子设备和存储介质。
背景技术
随着数字化进程的深入,业务系统需要存储的文件的数量越来越多,并且,存储在业务系统中的文件有时需要进行大量复制和交换,如:将存储在业务系统的硬盘中的文件转移到其他存储位置或者其他设备中,以实现数据的进一步加工和处理等。在对业务系统的硬盘中的文件进行转移时,需要对文件进行读取,由于文件在硬盘中进行存储时会出现两个需要连续读取的待读取文件的存储位置相差较远,此时需要让硬盘磁头进行跳转来完成寻址,当需要连续读取的文件数量较多时,硬盘磁头会进行频繁跳转来进行寻址,从而导致寻址的时间较长,以及,由于两个需要连续读取的待读取文件的存储位置不是连续的,无法一次性读取,在对每个待读取文件进行读取时都需要从用户态切换至内核态,由于每次切换都需要消耗一定时间,当需要连续读取的文件数量较多时,状态切换需要的时间较长。综上,无论是上述哪种情况,均会影响对文件进行读取时的读取效率,从而导致文件转移需要消耗较多的时间。
发明内容
有鉴于此,本申请实施例提供了一种文件读取方法、装置、电子设备和存储介质,以提高读取效率。
第一方面,本申请实施例提供了一种文件读取方法,所述方法应用在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,所述方法包括:
对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性;
根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表;
根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组;
根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数;
根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的;
根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组;
对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的;
对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
可选地,所述方法还包括:
响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
可选地,所述方法还包括:
以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
可选地,所述方法还包括:
并行发送的文件是按照异步落盘的形式存储的。
第二方面,本申请实施例提供了一种文件读取装置,所述装置在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,所述装置包括:
遍历单元,用于对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性;
排序单元,用于根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表;
第一分组单元,用于根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组;
第二分组单元,用于根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数;
第一处理单元,用于根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的;
拷贝单元,用于根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组;
第二处理单元,用于对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的;
读取单元,用于对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
可选地,所述装置还包括:
选择单元,用于响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
可选地,所述装置还包括:
发送单元,用于以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
可选地,并行发送的文件是按照异步落盘的形式存储的。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面中任一所述的文件读取方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面中任一所述的文件读取方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请中,先通过索引表将待读取文件划分为连续的待读取文件和非连续的待读取文件,然后将较大的连续的待读取文件按照预设的划分规则划分为多个群组,在划分完毕后,将得到的每个群组中最后一个存储块中的冗余空间去除,以得到各群组的读取范围,然后依据各群组的读取范围将硬盘中的文件读取至内存中,由于去除了群组最后一个存储块的冗余空间,因此在读取的时候不在读取冗余空间,从而有利于提高读取效率,此时,虽然内存中各群组均不包括最后一个存储块对应的冗余空间,但是由于内存中连续的待读取文件之间仍存在冗余空间,此时利用该连续的待读取文件中各文件在存储块中的存储情况,将该连续的待读取文件之间的冗余空间去除,此时,在内存中,属于同一个群组的文件均是连续的,因此在对内存中的群组中的文件进行读取时,属于同一群组的文件是连续的,从而进一步提高了文件的读取效率,通过上述两次冗余空间的去除,有利于提高文件的读取效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例一提供的一种文件读取方法的流程示意图;
图2为本申请实施例二提供的一种文件读取装置的结构示意图;
图3为本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要提前说明的是,存储块是硬盘的基本存储单元,一个硬盘可以划分为2n个存储块,一个文件通常占用一个或多个存储块,一个存储块只存放一个文件,例如:一个文件的大小为2.5M,一个存储块的大小为1M,那么该文件需要占用3个存储块,其中,第三个存储块并未占满,但是第三个存储块的剩余空间不用于存储其他文件,即:两个或多个文件不能存储在同一个存储块中,并且,该文件所占用的存储块的存储位置可以是连续的,也可能是不连续的,例如:硬盘包括5个存储块,这5个存储块的存储位置依次为存储块1、存储块2、存储块3、存储块4、存储块5,如果该文件占用的存储块为存储块1、存储块2、存储块3时,则该文件所占用的存储块的存储位置是连续的,也可以称该文件是连续的文件,如果该文件占用的存储块为存储块1、存储块2、存储块4,或者存储块1、存储块3、存储块5时,则该文件所占用的存储块的存储位置是非连续的,也可以称该文件是非连续的文件,即:当文件占用多个存储块时,只要顺序占用的存储块中有两个是不连续的,则该文件为非连续的文件,顺序占用是指当文件占用的存储块为存储块1、存储块2、存储块4时,顺序占用的存储块依次为存储块1、存储块2、存储块4,其中,存储块2、存储块4不是连续的,因此该文件是非连续的。
由于文件在硬盘中存储时,所占用的存储块可能是非连续的,并且两个文件所占用的存储块也是非连续的,这就导致在对多个文件进行读取时,硬盘磁头会因为存储块的存储位置发生频繁跳转,以及在读取完一个文件后,由于另一个文件与该文件是不连续的,需要进行用户态和内核态之间的频繁切换,从而造成文件的整体读取效率较低。
为了解决上述问题,本申请提供了一种文件读取方法、装置、电子设备和存储介质,以提高文件整体的读取效率,以下实施例是对本申请的详细说明。
实施例一
图1为本申请实施例一提供的一种文件读取方法的流程示意图,所述方法应用在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,如图1所示,该方法包括以下步骤:
步骤101、对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性。
具体的,在业务系统产生一个文件后,会将该文件存储到硬盘中,此时,该文件会占用一定数量的存储块,在确定出待读取文件后,为了提高待读取文件的读取效率,需要确定出待读取文件的相关文件信息,例如,该待读取文件所占用的目标存储块的存储位置,通过该文件信息,可以确定该待读取文件占用了哪些存储块;以及该待读取文件的文件大小;以及该待读取文件所占用的最后一个目标存储块的尾块位置,例如:一个待读取文件所占用的目标存储块为存储块1、存储块2和存储块3,且该待读取文件是按照存储块1、存储块2和存储块3的顺序进行存储的,此时,存储块1、存储块2内的存储空间被该待读取文件占满,如果该待读取文件的大小小于存储块1、存储块2和存储块3的总大小,则存储块3不会被占满,如果该待读取文件的大小等于存储块1、存储块2和存储块3的总大小,则存储块3被占满,无论存储块3是否被占满,存储块3均是该待读取文件所占用的最后一个目标存储块,尾块位置是指存储块3的结尾位置在硬盘中的位置,或者可以理解为存储块3的存储空间的范围中的一个边界;以及还要得到待读取文件所占用的目标存储块之间的连续性,即:如果该待读取文件占用了多个目标存储块时,多个目标存储块是否是连续的。
在得到上述四种信息后,可以通过四种信息对一个待读取文件进行详细描述,即:可以形成该待读取文件的文件信息,然后通过第一索引表的形式将多个待读取文件的文件信息存储到业务系统的内存的第一内存区域,以便通过索引表的形式对多个待读取文件中的无用信息进行去除。
步骤102、根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表。
具体的,由于在对硬盘中的待读取文件进行读取时按照硬盘中存储块的先后顺序进行读取是最快的,例如:当一个硬盘按照存储块1、存储块2、存储块3、存储块4、存储块5的顺序进行划分后,在对上述五个存储块中的文件进行读取时,那么按照存储块1、存储块2、存储块3、存储块4、存储块5的顺序进行读取是最快的,但是由于一个文件可能占多个存储块,因此可以根据待读取文件所占用的第一个目标存储块的存储位,按照存储位置的先后顺序对文件信息进行排序,例如:当第一个文件占用存储块1、存储块3、存储块5,第二个文件占用存储块2、存储块4时,第一个文件所占用的第一个目标存储块为存储块1,第二个文件所占用的第二个目标存储块为存储块3,那么第一个文件和第二个文件对应的文件信息的排列顺序为第一个文件、第二个文件。
步骤103、根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组。
具体的,在得到第二索引表后,可以确定出各待读取文件的先后顺序,为了便于后续操作,需要区分出每个待读取文件是否与其他文件是否连续,其中,如果一个待读取文件占用的多个目标存储块是非连续的,则将该待读取文件作为第一非连续文件群组,此时,第一非连续文件群组仅包括该待读取文件,如果一个待读取文件占用的多个目标存储块是连续的,但是该待读取文件的存储位置与其他待读取文件的存储位置不连续,即:该待读取文件在硬盘中所占用的存储块与其他待读取文件在硬盘中所占用的存储块是不连续的,则将该待读取文件作为第二非连续文件群组,此时,第二非连续文件群组仅包括该待读取文件,例如:硬盘是按照存储块1、存储块2、存储块3、存储块4、存储块5的顺序进行划分的,其中,第一个待读取文件占用的是存储块1、存储块2,如果第二个待读取文件占用的是存储块4、存储块5,则第一个待读取文件作为一个第二非连续文件群组,如果第一个待读取文件占用的是存储块1、存储块2,如果第二个待读取文件占用的是存储块3、存储块4,则将这两个文件作为一个连续文件群组。
又例如:硬盘是按照存储块1、存储块2、存储块3、存储块4、存储块5的顺序进行划分的,第一个待读取文件占用存储块1、存储块2、存储块4,第二个待读取文件占用存储块5,则将第一个待读取文件作为一个第一非连续文件群组,将第二个待读取文件作为一个第二非连续文件群组。
进一步的,在确定文件群组时,需要先判断该待读取文件自身所占用的存储块是否是连续的,如果不是连续的,则作为第一非连续文件群组,如果是连续的,需要判断与该待读取文件相邻的下一个待读取文件所占用的存储块是否与该待读取文件所占用的存储块连续,如果不连续,则将该待读取文件作为第二非连续文件群组,如果连续,则将这两个待读取文件作为一个连续文件群组,在确定出该连续文件群组后,继续判断下下个待读取文件是否与该连续文件群组连续,如果连续,则这三个待读取文件群组作为一个连续文件群组,如果不相连,则将之前两个连续的待读取文件作为连续文件群组,然后判断与下下个待读取文件相邻的待读取文件与该下下个待读取文件是否连续,以此类推,按照第二索引表中包括的各文件信息的先后顺序将所有的文件信息划分成第一非连续文件群组、第二非连续文件群组和连续文件群组三种第一文件群组。
步骤104、根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数。
具体的,在确定出第一文件群组后,有些连续文件群组的大小可能过大,从而影响读取后的数据传输,因此需要对连续文件群组进行划分,由于本次划分是为了避免出现较大的连续文件群组,因此,如果一个连续文件群组的大小小于或等于预设阈值,则不对该连续文件群组进行划分,如果一个连续文件群组的大小大于预设阈值,则需要对该连续文件群组进行划分,在对连续文件群组进行划分时,以刚好大于或等于该预设阈值为准进行划分,例如:预设阈值为1M,连续文件群组包括3个待读取文件,如果,第一个待读取文件为0.9M、第二个待读取文件为0.8M、第三个待读取文件为0.7M,则将第一个待读取文件和第二个待读取文件划分为一个第二文件群组,将第三个待读取文件划分为另一个第二文件群组;如果第一个待读取文件为1.1M、第二个待读取文件为0.8M、第三个待读取文件为0.7M,则将第一个待读取文件划分为一个第二文件群组,将第二个待读取文件和第三个待读取文件划分为另一个第二文件群组;如果第一个待读取文件为0.3M、第二个待读取文件为0.5M、第三个待读取文件为0.6M,则将这三个待读取文件作为一个第二文件群组,其中,在对上述三个待读取文件进行划分时,按照上述三个待读取文件在第二索引表中的顺序进行划分。
其中,非连续的文件群组的大小中可能存在大于预设阈值非连续的文件群组。
步骤105、根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的。
具体的,在经过步骤104的划分后,得到的文件群组包括:第一非连续文件群组、第二非连续文件群组和第二文件群组,其中,第一非连续文件群组、第二非连续文件群组中均仅包括一个待读取文件,第二文件群组中可能是由多个连续的待读取文件构成的,并且,对于第一非连续文件群组和第二非连续文件群组,这两种文件群组中的待读取文件所占用的目标存储块中仅最后一个目标存储块中存在冗余空间,因此,对于第一非连续文件群组和第二非连续文件群组只需要确定出待读取文件在目标存储块中的存储位置即可,即:文件信息的第一读取范围,在确定第一读取范围时,可以先根据待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与待读取文件的文件大小之差确定出该待读取文件在最后一个目标存储块中的第一结尾位置,然后根据该待读取文件所占用的目标存储块的起始位置和第一结尾位置确定出第一读取范围;对于每个第二文件群组,该第二文件群组包括的待读取文件是连续的,这里的连续包括:如果该第二文件群组仅包括一个待读取文件,则该待读取文件所占用的目标存储块是连续的,如果包括多个待读取文件,则多个待读取文件所占用的目标存储块是连续的,此时,可以将该第二文件群组所包括的所有待读取文件看成一个整体,然后确定该整体在目标存储块中的存储位置即可,即:该整体所对应的文件信息的第二读取范围,在确定第二读取范围时,可以先根据该整体中最后一个待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该整体中最后一个待读取文件的文件大小之差确定出该整体中最后一个待读取文件在最后一个目标存储块中的第二结尾位置,然后根据该整体所占用的目标存储块的起始位置和第二结尾位置确定出第二读取范围。
步骤106、根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组。
具体的,在确定出第一读取范围和第二读取范围后,在对硬盘中存储的待读取文件进行拷贝时,不会读取上述文件群组中最后一个目标存储块中的冗余空间,在对待读取文件进行读取时,由于存在连续的待读取文件,相对于现有技术,本申请在读取时可以减少状态切换的次数,以及硬盘磁头切换的频率,从而有利于提高读取效率,为了进一步提高读取效率,可以根据上述确定出来的读取范围将硬盘中存储的待读取文件拷贝至业务系统的内存的第二内存区域,以便在第二内存区域中对文件中仍存在的冗余空间进行去除。
步骤107、对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的。
具体的,由于第一非连续文件群组和第二非连续文件群组在去除最后一个目标存储块中的冗余空间后则不再存在冗余空间,而第二文件群组在去除最后一个目标存储块中的冗余空间后,两个连续的待读取文件之间仍存在冗余空间,例如:当一个第二文件群组是由第一个待读取文件和第二个待读取文件构成时,在进行第一次冗余空间去除后,只是将第二个待读取文件中的冗余空间去除了,第一个待读取文件中仍存在冗余空间,此时需要将剩余的冗余空间去除,此时可以将第二文件群组中的每个待读取文件看做一个整体,然后利用该待读取文件所占用的目标存储块的起始位置和结尾位置确定出该待读取文件的在目标存储块中所占用的空间,从而对该待读取文件所占用的最后一个目标存储块中的冗余空间进行去除,此时可以去除掉各待读取文件之间的冗余空间。
步骤108、对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
具体的,经过上述操作可以将一个文件群组中的所有冗余空间去除掉,且由于在第二内存空间中包括了所有的待读取文件的有效数据,因此在对第二内存空间中的数据进行读取时,有利于提高读取效率。
在一个可行的实施方案中,在执行步骤101之前,还可以响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
具体的,在对文件进行转移时,可以将硬盘存储的文件的文件类型的选项显示给用户,用户可以对选项进行选择,在用户选择完毕之后将用户选择的文件类型所包括的文件作为待读取文件,并进行图1所示的处理。
在一个可行的实施方案中,在执行完步骤108之后,以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
具体的,由于在进行数据发送时,只要不超过带宽,是可以发送多个数据的,为了提高数据的发送效率,可以一次性读取多个文件群组,然后将读取到的多个文件群组进行并行发送,从而有利于提高数据发送的效率。
在一个可行的实施方案中,并行发送的文件是按照异步落盘的形式存储的。
具体的,在接收到上述发送的文件后,可以一边继续接收其他文件,一边对接收到的文件进行存储,而不是在接收到所有的文件之后再一起存储,这样有利于提高存储效率。
实施例二
图2为本申请实施例二提供的一种文件读取装置的结构示意图,所述装置在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,如图2所示,所述装置包括:
遍历单元201,用于对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性;
排序单元202,用于根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表;
第一分组单元203,用于根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组;
第二分组单元204,用于根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数;
第一处理单元205,用于根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的;
拷贝单元206,用于根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组;
第二处理单元207,用于对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的;
读取单元208,用于对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
在一个可行的实施方案中,所述装置还包括:
选择单元,用于响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
在一个可行的实施方案中,所述装置还包括:
发送单元,用于以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
在一个可行的实施方案中,并行发送的文件是按照异步落盘的形式存储的。
关于实施例二的原理说明可参考实施例一的详细介绍,在此不再详细说明。
实施例三
图3为本申请实施例三提供的一种电子设备的结构示意图,包括:处理器301、存储介质302和总线303,所述存储介质302存储有所述处理器301可执行的机器可读指令,当电子设备运行上述的文件读取方法时,所述处理器301与所述存储介质302之间通过总线303通信,所述处理器301执行所述机器可读指令,以执行实施例一中所述的方法。
实施例四
本申请实施例四还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施例一中所述的方法。
本申请实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种文件读取方法,其特征在于,所述方法应用在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,所述方法包括:
对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性;
根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表;
根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组;
根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数;
根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的;
根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组;
对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的;
对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
并行发送的文件是按照异步落盘的形式存储的。
5.一种文件读取装置,其特征在于,所述装置在业务系统中,所述业务系统的硬盘中存储有多个待读取文件,在所述业务系统处于内核态时,所述装置包括:
遍历单元,用于对多个待读取文件进行遍历,将得到的包含各所述待读取文件对应的文件信息的第一索引表存储到所述业务系统的内存的第一内存区域中,其中,对于每个所述文件信息,该文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置、该文件信息对应的待读取文件的文件大小、该文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置、该文件信息对应的待读取文件所占用的目标存储块之间的连续性;
排序单元,用于根据各所述文件信息所对应的待读取文件所占用的第一个目标存储块的存储位置,按照存储位置的先后顺序,对所述第一索引表中的各所述文件信息进行过排序,得到第二索引表;
第一分组单元,用于根据各所述文件信息对应的待读取文件所占用的目标存储块之间的连续性、各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,以及各所述文件信息对应的待读取文件所占用的最后一个目标存储块的尾块位置,按照所述第二索引表中包括的各文件信息的先后顺序对文件信息进行第一群组划分,以得到多个第一文件群组,其中,对于每个所占用的目标存储块为非连续的待读取文件,将该待读取文件所对应的文件信息作为一个第一非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是非连续时,将该待读取文件所对应的文件信息作为一个第二非连续文件群组,对于每个所占用的目标存储块为连续的待读取文件且该待读取文件所占用的最后一个目标存储块的尾块位置与下一个待读取文件所占用的目标存储块的存储位置是连续时,将该待读取文件所对应的文件信息和下一个待读取文件所对应的文件信息作为一个连续文件群组;
第二分组单元,用于根据各所述文件信息对应的待读取文件的文件大小,按照所述第二索引表中包括的各文件信息的先后顺序,对多个所述第一文件群组中的连续文件群组进行第二群组划分,以得到多个第二文件群组,其中,对于每个所述连续文件群组,如果该连续文件群组对应的待读取文件的文件大小总和小于或等于预设阈值,则将该连续文件群组作为一个第二文件群组,如果该连续文件群组对应的待读取文件的文件大小总和大于所述预设阈值,则将该连续文件群组划分为N个第二文件群组,前N-1个第二文件群组中,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和大于或等于所述预设阈值,每个第二文件群组包括的文件信息对应的待读取文件的文件大小总和减去该第二文件群组包括的文件信息中最后一个文件信息对应的待读取文件的文件大小小于所述预设阈值,N的取值为大于1的正整数;
第一处理单元,用于根据各所述文件信息对应的待读取文件的文件大小和各所述文件信息包括该文件信息对应的待读取文件所占用的目标存储块的存储位置,对所述第一非连续文件群组、所述第二非连续文件群组和所述第二文件群组进行第一冗余去除,以得到第三文件群组,其中,对于每个所述第一非连续文件群组和每个所述第二非连续文件群组,根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和第一结尾位置,确定该非连续文件群组中的文件信息的第一读取范围,以将所述第一读取范围对应的文件信息作为所述第三文件群组,所述第一结尾位置是根据该非连续文件群组包括的文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该非连续文件群组包括的文件信息所对应的待读取文件的文件大小之差确定出来的,对于每个所述第二文件群组,根据该第二文件群组包括的文件信息所对应的待读取文件所占用的目标存储块的起始位置和该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块的第二结尾位置,确定该第二文件群组的文件信息第二读取范围,以将所述第二读取范围对应的文件信息作为所述第三文件群组,所述第二结尾位置是根据该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组包括的文件信息最后一个文件信息所对应的待读取文件的文件大小之差确定出来的;
拷贝单元,用于根据各所述第三文件群组对应的读取范围,将该第三文件群组在所述硬盘中对应的待读取文件拷贝到所述业务系统的内存的第二内存区域中,以将所述第二内存区域中该第三文件群组对应的拷贝内容作为第四文件群组;
第二处理单元,用于对于所述第四文件群组中各第二文件群组对应的待读取文件,根据该第二文件群组对应的各待读取文件的所占用的目标存储块的起始位置和该第二文件群组对应的各待读取文件所占用的目标存储块的第三结尾位置,对该第二文件群组对应的各待读取文件之间的冗余空间进行第二冗余去除,以得到第五文件群组,其中,所述第三结尾位置是根据该第二文件群组对应的各待读取文件所占用的目标存储块中除最后一个目标存储块之外的目标存储块的存储大小之和与该第二文件群组对应的各待读取文件的文件大小之差确定出来的;
读取单元,用于对所述第五文件群组,以及所述第四文件群组中除第二文件群组对应的待读取文件之外的文件群组进行读取。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
选择单元,用于响应用户对所述硬盘中存储的文件的文件类型的选择操作,将用户选择的文件类型所对应的文件确定为所述待读取文件。
7.如权利要求5所述的装置,其特征在于,所述装置还包括:
发送单元,用于以群组的形式对读取到的文件进行并行发送,其中,并行发送的群组文件的总和小于发送带宽。
8.如权利要求7所述的装置,其特征在于,并行发送的文件是按照异步落盘的形式存储的。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至4中任一所述的文件读取方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4中任一所述的文件读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186653.4A CN115292247B (zh) | 2022-09-28 | 2022-09-28 | 一种文件读取方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186653.4A CN115292247B (zh) | 2022-09-28 | 2022-09-28 | 一种文件读取方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115292247A true CN115292247A (zh) | 2022-11-04 |
CN115292247B CN115292247B (zh) | 2022-12-06 |
Family
ID=83833365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211186653.4A Active CN115292247B (zh) | 2022-09-28 | 2022-09-28 | 一种文件读取方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292247B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233479A (zh) * | 2005-08-03 | 2008-07-30 | 桑迪士克股份有限公司 | 直接存储数据文件的存储器区块的管理 |
CN101968791A (zh) * | 2010-08-10 | 2011-02-09 | 深圳市飘移网络技术有限公司 | 一种数据存储方法及装置 |
CN109726177A (zh) * | 2018-12-29 | 2019-05-07 | 北京赛思信安技术股份有限公司 | 一种基于HBase的海量文件分区索引方法 |
CN110647497A (zh) * | 2019-07-19 | 2020-01-03 | 广东工业大学 | 一种基于hdfs的高性能文件存储与管理系统 |
WO2021073111A1 (zh) * | 2019-10-15 | 2021-04-22 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
WO2021169113A1 (zh) * | 2020-02-26 | 2021-09-02 | 平安科技(深圳)有限公司 | 数据管理方法、装置、计算机设备和存储介质 |
-
2022
- 2022-09-28 CN CN202211186653.4A patent/CN115292247B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233479A (zh) * | 2005-08-03 | 2008-07-30 | 桑迪士克股份有限公司 | 直接存储数据文件的存储器区块的管理 |
CN101968791A (zh) * | 2010-08-10 | 2011-02-09 | 深圳市飘移网络技术有限公司 | 一种数据存储方法及装置 |
CN109726177A (zh) * | 2018-12-29 | 2019-05-07 | 北京赛思信安技术股份有限公司 | 一种基于HBase的海量文件分区索引方法 |
CN110647497A (zh) * | 2019-07-19 | 2020-01-03 | 广东工业大学 | 一种基于hdfs的高性能文件存储与管理系统 |
WO2021073111A1 (zh) * | 2019-10-15 | 2021-04-22 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
WO2021169113A1 (zh) * | 2020-02-26 | 2021-09-02 | 平安科技(深圳)有限公司 | 数据管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115292247B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2810171B1 (en) | Systems and methods for data chunk deduplication | |
CN109614377A (zh) | 分布式文件系统的文件删除方法、装置、设备及存储介质 | |
JP2008204206A (ja) | データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム | |
EP2770446A1 (en) | Data processing method and device | |
EP2288975A2 (en) | Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps | |
CN105787037B (zh) | 一种重复数据的删除方法及装置 | |
CN105117351A (zh) | 向缓存写入数据的方法及装置 | |
CN103677659A (zh) | 信息处理设备和复制控制方法 | |
CN113254270B (zh) | 一种存储缓存热点数据自恢复方法、系统及存储介质 | |
CN115292247B (zh) | 一种文件读取方法、装置、电子设备和存储介质 | |
CN104077241B (zh) | 缓存淘汰算法切换处理方法及装置 | |
CN107133334B (zh) | 基于高带宽存储系统的数据同步方法 | |
CN111831691A (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
US20040123039A1 (en) | System and method for adatipvely loading input data into a multi-dimensional clustering table | |
CN109658985B (zh) | 一种基因参考序列的去冗余优化方法及系统 | |
CN111538677A (zh) | 数据处理方法及装置 | |
US8341376B1 (en) | System, method, and computer program for repartitioning data based on access of the data | |
CN111782590A (zh) | 一种文件读取方法及装置 | |
CN115408342A (zh) | 文件处理方法、装置及电子设备 | |
CN110362769B (zh) | 一种数据处理方法及装置 | |
CN108170372A (zh) | 基于云硬盘的数据处理方法和装置 | |
CN102354302A (zh) | 一种擦除磁盘的方法及装置 | |
CN111177091B (zh) | 基于xfs文件系统录像预分配存储方法、系统及存储介质 | |
CN112131194A (zh) | 一种只读文件系统的文件存储控制方法及装置、存储介质 | |
CN115016740B (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 |