一种小文件的目录读取方法、系统、电子设备及存储介质技术方案

技术编号:23287997 阅读:20 留言:0更新日期:2020-02-08 18:05
本申请公开了一种小文件的目录读取方法,所述目录读取方法包括向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。本申请能够提高小文件目录的读取速率。本申请还公开了一种小文件的目录读取系统、一种电子设备及一种存储介质,具有以上有益效果。

A directory reading method, system, electronic equipment and storage medium for small files

【技术实现步骤摘要】
一种小文件的目录读取方法、系统、电子设备及存储介质
本申请涉及计算机
,特别涉及一种小文件的目录读取方法、系统、一种电子设备及一种存储介质。
技术介绍
小文件指的是大小从几KB到几十KB的文件。例如,购物网站需要存储海量的商品图片和搜索引擎需要从网络上抓取成万上亿的网页都属于小文件。在分布式存储应用中,随着数据量的越来越大,出现单目录百万、千万甚至亿级的小文件目录。相关技术中,将所有的小文件目录存放在单一目录场景中,由于小文件目录数量过大,导致小文件目录读取速率较低。因此,如何提高小文件目录的读取速率是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种小文件的目录读取方法、系统、一种电子设备及一种存储介质,能够提高小文件目录的读取速率。为解决上述技术问题,本申请提供一种小文件的目录读取方法,该小文件的目录读取方法包括:向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。可选的,在向分布式文件系统的多个元数据服务器发送第一目录预读指令之前,还包括:将所有所述小文件的总目录划分为N个所述目录分片,并将所述目录分片存储至所述分布式文件系统的多个元数据服务器。可选的,每一所述元数据服务器将任意数量个目录分片传输至客户端缓存包括:每一所述元数据服务器随机选择1个目录分片传输至所述客户端缓存。可选的,所述将未传输至所述客户端缓存的目录分片传输至所述客户端缓存包括:将所述当前读取的目录分片的下一目录分片传输至所述客户端缓存。可选的,所述向分布式文件系统的多个元数据服务器发送第一目录预读指令包括:通过异步请求的方式向所述分布式文件系统的多个元数据服务器发送第一目录预读指令。可选的,在根据所述目录读取指令读取所述客户端缓存中的目录分片之前,还包括:生成缓存管理指令,以使所述目录分片在LRU列表中不被释放。可选的,还包括:判断已读取的目录分片是否包括所述目标读取指令对应的全部目标目录;若是,则返回读取结果。本申请还提供了一种小文件的目录读取系统,该小文件的目录读取系统包括:首次预读模块,用于向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;目录读取模块,用于接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;非首次预读模块,用于确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述小文件的目录读取方法执行的步骤。本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述小文件的目录读取方法执行的步骤。本申请提供了一种小文件的目录读取方法,包括:向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。本申请将所有小文件的总目录进行分片处理得到多个目录分片,并将目录分片分别存储至多个元数据服务器。在客户端需要进行目录读取时,先向多个元数据服务器发送第一目录预读指令,以便所以元数据服务器都向客户端传输预设数量的目录分片。客户端可以从客户端缓存中通过读取元数据服务器传输的目录。在客户端读取目录分片时,客户端可以继续向当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。在上述过程将客户端对于小文件总目录的读取转化为对于单个目录分片的读取,缩短了客户端读取小文件目录的时间,提高了小文件目录的读取速率。本申请同时还提供了一种小文件的目录读取系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例所提供的一种小文件的目录读取方法的流程图;图2为本申请实施例所提供的一种小文件总目录的分片原理示意图;图3为本申请实施例所提供的分布式文件系统中海量小文件浏览原理示意图;图4为本申请实施例所提供的一种小文件的目录读取系统的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面请参见图1,图1为本申请实施例所提供的一种小文件的目录读取方法的流程图。具体步骤可以包括:S101:向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,本实施例可以预先将所有小文件的总目录进行分片处理得到多个目录分片,并将所述目录分片存储至所述分布式文件系统的多个元数据服务器中,此处不对目录分片的数量进行限定,总目录包括的小文件数量与目录分片的数量正相关。作为一种可行的实施方式,本实施例可以设置每一目录分片包括小文件数量的最大值,以便进行分片处理;本实施例还可以根据总目录包括小文件的数量确定目录分片数量K,然后将总目录切分为K个目录分片,任意两个目录分片之间的小文件数量差小于固定值。本实施例中所提到的小文件指分布式文件系统中小于100KB字节的文件,分布式文件系统中可以存在多个元数据服务器,每一元数据服务器上可以存储多个目录分片。作为一种可行的实施方式,元数据服务器上存储的目录分片为在总目录中相邻的多个目录分片,例如小文件本文档来自技高网...

【技术保护点】
1.一种小文件的目录读取方法,其特征在于,包括:/n向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;/n接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;/n确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。/n

【技术特征摘要】
1.一种小文件的目录读取方法,其特征在于,包括:
向分布式文件系统的多个元数据服务器发送第一目录预读指令,以便每一所述元数据服务器将任意数量个目录分片传输至客户端缓存;其中,所述目录分片通过将所有小文件的总目录进行分片处理得到;
接收到目录读取指令,并根据所述目录读取指令读取所述客户端缓存中的目录分片;
确定当前读取的目录分片,并向所述当前读取的目录分片所在的元数据服务器发送第二目录预读指令,以便将未传输至所述客户端缓存的目录分片传输至所述客户端缓存。


2.根据权利要求1所述目录读取方法,其特征在于,在向分布式文件系统的多个元数据服务器发送第一目录预读指令之前,还包括:
将所有所述小文件的总目录划分为N个所述目录分片,并将所述目录分片存储至所述分布式文件系统的多个元数据服务器。


3.根据权利要求1所述目录读取方法,其特征在于,每一所述元数据服务器将任意数量个目录分片传输至客户端缓存包括:
每一所述元数据服务器随机选择1个目录分片传输至所述客户端缓存。


4.根据权利要求3所述目录读取方法,其特征在于,所述将未传输至所述客户端缓存的目录分片传输至所述客户端缓存包括:
将所述当前读取的目录分片的下一目录分片传输至所述客户端缓存。


5.根据权利要求1所述目录读取方法,其特征在于,所述向分布式文件系统的多个元数据服务器发送第一目录预读指令包括:
通过异步请求的方式向所述分布式文件系统的多个元数据服务器发送第一目录预...

【专利技术属性】
技术研发人员:罗浩李杰
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1