本发明专利技术提供了一种文件读取方法和系统。涉及存储技术,解决了读取小文件索引压力大及I/O开销高的问题。该方法包括:根据待读取的第一文件信息,查找所述第一文件归属的第二文件,所述第一文件为第一类型,所述第二文件包含至少两个第一类型的文件,所述第二文件为第二类型的文件;读取所述第二文件;从所述第二文件中查找得到所述第一文件。本发明专利技术提供的技术方案适用于海量小文件存储,实现了高效高资源利用率的小文件存储管理。
A file reading method and system, storage medium and computer equipment
【技术实现步骤摘要】
一种文件读取方法和系统、存储介质、计算机设备
本专利技术涉及存储技术,尤其涉及一种文件读取方法和系统、存储介质、计算机设备。
技术介绍
存储系统中索引的设计以减少内存成本和降低I/O开销为目的,但这两方面有矛盾的地方,要降低I/O开销就要使索引的尽量准确,而这样又必然会导致索引的容量增加。这种情形在存储系统中小文件的场景中尤为明显。现有技术主流采用将小文件合并存储的方式,然后在内存中分别建立这些小文件的索引。这样做的缺点是,小文件数目较多时,建立的索引所占用的容量会很大,尤其在当下短视频和图片服务发展迅猛的场景中,海量小文件存储建立的索引的容量会使得单机内存容量难以负担。内存容量难以负担时,需要将索引分层,将全量索引写入到磁盘,只在内存中存储全量索引的索引。这样带来的问题是查找文件时必须要经过2次I/O,一次读取全量索引,一次读取文件。
技术实现思路
本专利技术旨在解决上面描述的问题。根据本专利技术的第一方面,提供了一种文件读取方法,包括:根据待读取的第一文件信息,查找所述第一文件归属的第二文件,所述第一文件为第一类型,所述第二文件包含至少两个第一类型的文件,所述第二文件为第二类型的文件;读取所述第二文件;从所述第二文件中查找得到所述第一文件。优选的,根据待读取的第一文件信息,查找所述第一文件归属的第二文件的步骤之前,还包括:将多个第一类型的文件组成至少一个第二类型的文件写入存储。优选的,所述第一类型为小文件类型,所述第二类型为大文件类型,将多个第一类型的文件组成至少一个第二类型的文件写入存储的步骤包括:为第一类型的文件添加包含该文件元信息的头部;将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件;将所述第二类型的文件写入存储,并为所述第二类型的文件建立索引。优选的,将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件的步骤包括:对所述多个第一类型的文件进行排序;依序截取多个第一类型的文件分组,每个文件分组的总数据量达到或接近达到预置的第二类型的文件容量;以每个文件分组构成一个第二类型的文件,所述第二类型的文件的名称为对应的文件分组中第一个第一类型的文件的名称。优选的,根据待读取的第一文件信息,查找所述第一文件归属的第二文件的步骤包括:对比所述第一文件的元信息与各个第二类型的文件的索引,确定包含所述第一文件的第二类型的文件为所述第一文件归属的第二文件。根据本专利技术的另一方面,还提供了一种文件读取系统,包括:文件查找模块,用于根据待读取的第一文件信息,查找所述第一文件归属的第二文件,所述第一文件为第一类型,所述第二文件包含至少两个第一类型的文件,所述第二文件为第二类型的文件;数据读取模块,用于读取所述第二文件;数据查找模块,用于从所述第二文件中查找得到所述第一文件。优选的,该系统还包括:文件整合写入模块,用于将多个第一类型的文件组成至少一个第二类型的文件写入存储。优选的,所述第一类型为小文件类型,所述第二类型为大文件类型,所述文件整合写入模块包括:元信息添加单元,用于为第一类型的文件添加包含该文件元信息的头部;文件构建单元,用于将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件;存储单元,用于将所述第二类型的文件写入存储,并为所述第二类型的文件建立索引。优选的,所述文件查找模块具体用于对比所述第一文件的元信息与各个第二类型的文件的索引,确定包含所述第一文件的第二类型的文件为所述第一文件归属的第二文件。根据本专利技术的另一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述文件读取方法的步骤。根据本专利技术的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述文件读取方法的步骤。本专利技术提供了一种文件读取方法和系统、存储介质、计算机设备,根据待读取的第一文件信息,查找所述第一文件归属的第二文件,然后读取所述第二文件,再从第二文件中查找得到所述第一文件。提供了新的小文件存储架构,实现了高效高资源利用率的小文件存储管理,解决了读取小文件索引压力大及I/O开销高的问题。参照附图来阅读对于示例性实施例的以下描述,本专利技术的其他特性特征和优点将变得清晰。附图说明并入到说明书中并且构成说明书的一部分的附图示出了本专利技术的实施例,并且与描述一起用于解释本专利技术的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本专利技术的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。图1示例性地示出了本专利技术的一实施例提供的一种文件读取方法的流程;图2示例性地示出了图1中步骤101的具体流程;图3示例性地示出了本专利技术的一实施例提供的又一种文件读取方法的流程;图4示例性地示出了本专利技术的一实施例中的文件存储结构;图5示例性地示出了本专利技术的一实施例提供的一种文件读取系统的结构;图6示例性地示出了图5中文件整合写入模块503的结构。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。小文件数目较多时,建立的索引所占用的容量会很大,尤其在当下短视频和图片服务发展迅猛的场景中,海量小文件存储建立的索引的容量会使得单机内存容量难以负担。而对大量索引分层管理,刚会增加I/O次数,增加I/O开销。为了解决上述问题,本专利技术的实施例提供了一种文件读取方法和系统、存储介质、计算机设备,可以平衡减少内存和降低I/O开销这两个部分,以谋求系统整体的最大优化。本专利技术的一实施例提供了一种文件读取方法,使用该方法完成小文件读取的流程如图1所示,包括:步骤101、将多个第一类型的文件组成至少一个第二类型的文件写入存储。所述第一类型为小文件类型,所述第二类型为大文件类型。本步骤具体如图2所示,包括:步骤1011、为第一类型的文件添加包含该文件元信息的头部。步骤1012、将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件。本步骤中,首先对所述多个第一类型的文件进行排序,排序的规则包括但不限于:文件名、元信息、编号。排序可为升序或降序。在完成排序后,即得到了第一类型的文本文档来自技高网...
【技术保护点】
1.一种文件读取方法,其特征在于,包括:/n根据待读取的第一文件信息,查找所述第一文件归属的第二文件,所述第一文件为第一类型,所述第二文件包含至少两个第一类型的文件,所述第二文件为第二类型的文件;/n读取所述第二文件;/n从所述第二文件中查找得到所述第一文件。/n
【技术特征摘要】
1.一种文件读取方法,其特征在于,包括:
根据待读取的第一文件信息,查找所述第一文件归属的第二文件,所述第一文件为第一类型,所述第二文件包含至少两个第一类型的文件,所述第二文件为第二类型的文件;
读取所述第二文件;
从所述第二文件中查找得到所述第一文件。
2.根据权利要求1所述的文件读取方法,其特征在于,根据待读取的第一文件信息,查找所述第一文件归属的第二文件的步骤之前,还包括:
将多个第一类型的文件组成至少一个第二类型的文件写入存储。
3.根据权利要求2所述的文件读取方法,其特征在于,所述第一类型为小文件类型,所述第二类型为大文件类型,将多个第一类型的文件组成至少一个第二类型的文件写入存储的步骤包括:
为第一类型的文件添加包含该文件元信息的头部;
将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件;
将所述第二类型的文件写入存储,并为所述第二类型的文件建立索引。
4.根据权利要求3所述的文件读取方法,其特征在于,将多个第一类型的文件按照预置的第二类型的文件容量进行组合,构成所述第二类型的文件的步骤包括:
对所述多个第一类型的文件进行排序;
依序截取多个第一类型的文件分组,每个文件分组的总数据量达到或接近达到预置的第二类型的文件容量;
以每个文件分组构成一个第二类型的文件,所述第二类型的文件的名称为对应的文件分组中第一个第一类型的文件的名称。
5.根据权利要求3或4所述的文件读取方法,其特征在于,根据待读取的第一文件信息,查找所述第一文件归属的第二文件的步骤包括:
对比所述第一文件的元信息与各个第二类型的文件的索引,确定包含所述第一文件的第二...
【专利技术属性】
技术研发人员:李文博,吴义谱,张炎泼,
申请(专利权)人:北京白山耘科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。