分布式系统的目录读取方法、装置、服务器和存储介质制造方法及图纸

技术编号:23315033 阅读:16 留言:0更新日期:2020-02-11 17:46
本发明专利技术公开了一种分布式系统的目录读取方法,应用于局部服务器,包括:接收客户端发送的目录读取请求;基于所述目录读取请求生成目录读取任务;基于预设规则将所述目录读取任务分成N个子任务;异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。本发明专利技术还提供了一种分布式系统的目录读取装置、服务器和存储介质。本发明专利技术通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。

Directory reading method, device, server and storage medium of distributed system

【技术实现步骤摘要】
分布式系统的目录读取方法、装置、服务器和存储介质
本专利技术实施例涉及集群文件系统的元数据服务在处理文件接口中的超大目录的读取技术,尤其涉及一种分布式系统的目录读取方法、装置、服务器和存储介质。
技术介绍
集群文件系统按照对存储空间的访问方式,可分为共享存储型集群文件系统和分布式集群文件系统,前者是多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件系统;后者则是每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。大规模集群文件系统无一例外都属于分布式集群文件系统。分布式集群文件系统可扩展性更强。现有技术中,超大目录执行列目录的操作时,无法有效的列出目录或列目录时间非常长的情况,容易导致超大目录加载时间超长,耗费大量时间,当超大目录加载失败时即无法读出目录,导致读取失败。本专利技术通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。
技术实现思路
本专利技术提供一种分布式系统的目录读取方法,应用于局部服务器,以实现读取时间缩短,避免了部分目录读取失败即造成整体读取任务失败的效果。第一方面,本专利技术实施例提供了一种分布式系统的目录读取方法,包括:接收客户端发送的目录读取请求;基于所述目录读取请求生成目录读取任务;基于预设规则将所述目录读取任务分成N个子任务;异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。第二方面,本专利技术实施例还提供了一种分布式系统的目录读取装置,包括如下模块:接收模块,用于接收客户端发送的目录读取请求;任务生成模块,用于基于所述目录读取请求生成目录读取任务;分组模块,用于基于预设规则将所述目录读取任务分成N个子任务;执行模块,用于异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;第一发送模块,用于基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。第三方面,本专利技术实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如上述任一所述的分布式系统的目录读取方法。第四方面,本专利技术实施例还提供了一种终端可读存储介质,其上存储有程序,所述程序被处理器执行时能够实现如上述任一所述的分布式系统的目录读取方法。本专利技术通过通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。附图说明图1是本专利技术实施例一中的分布式系统的目录读取方法流程图。图2是本专利技术实施例二中的分布式系统的目录读取方法流程图。图3是本专利技术实施例三中的分布式系统的目录读取方法流程图。图4是本专利技术实施例三替代实施例中的步骤流程图。图5是本专利技术实施例四的一种分布式系统的目录读取装置结构图。图6是本专利技术实施例四替代实施例的一种分布式系统的目录读取装置结构图。图7是本专利技术实施例五中的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。实施例一如图1所示,本专利技术实施例一提供了一种分布式系统的目录读取方法,本实施例及以下实施例均以分布式集群文件系统Ceph为例进行说明,该方法具体包括如下步骤:S101、接收客户端发送的目录读取请求。在分布式文件系统中,对于目录的读取操作一般是指元数据操作,比如列目录获取目录下所有文件的信息等。开源分布式集群文件系统Ceph的文件接口对目录的读取的流程为,客户端发出读取目录下文件信息的请求,元数据管理服务生成目录读取任务,执行目录读取任务查询得到目录下文件数总量N,一次性的获取N个文件的所有元数据信息,将获取到的元数据信息一起返回给客户端。S102、基于所述目录读取请求生成目录读取任务。在大数据环境下,目录的体量也非常大,目录的存取性能是整个分布式文件系统性能的关键。该步骤中,分布式存储系统的服务器收到读取请求消息之后,从元数据服务器并发读取目标目录中多个目录分片对象的目录项。读取目录任务指的是读取目录中每条描述数据的元数据,再将读取的目录项交付给该客户端的操作。S103、基于预设规则将所述目录读取任务分成N个子任务。该步骤中,服务器通过扫描文件系统中存储的数据文件目录的记录,获取到待读取的目录的文件数,基于文件数将目录读取任务分成N个子任务。在接收到客户端发送的目标目录请求后,分布式文件系统的客户端向元数据服务器请求目标目录的目录大小,目录大小可以用目录中所含有的目录项数量来表示,这里所述的目录项指的是描述具体文件的属性的数据,也就是通常所说的描述数据的数据,包括文件的属性,比如文件创建、修改及访问的时间,文件拥有者,文件权限,映射信息等,也可以称为元数据。优选地,目录读取请求中包括待读取目录文件数,预设的每组文件个数根据所述待读取目录文件数确定。在本实施例中,优选地,每组文件个数M相同,且每组文件个数M的值使分组后的子任务数N为正整数。可选地,每组文件个数M与子任务数N的取值设置与文件系统剩余IOPS和进行平均IOPS相关。S104、异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果。该步骤使用异步执行。异步执行是指任务在异步执行模式下,各语句执行结束的顺序与任务执行开始的顺序并不一定相同。在本实施例的操作中,服务器执行读取目录文件的所述N个子任务,每个子任务读取元数据中的文件目录,执行完成后直接将任务结果返回给客户端,而不需要等到服务器将查询结果合并后再一起返回客户端。S105、基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。由于读取的目录文件的大小和数量不同,异步执行的N个子任务执行结束的时间也不相同。按照时间先后顺序,将首先生成的目录读取结果返回给客户端,后续生成的目录读取结果后返回给客户端。该步骤中,文件系统处理N个子任务,由于分布式文件系统的目录文件有时候容量很大,如果将处理后本文档来自技高网...

【技术保护点】
1.一种分布式系统的目录读取方法,应用于局部服务器,其特征在于,包括:/n接收客户端发送的目录读取请求;/n基于所述目录读取请求生成目录读取任务;/n基于预设规则将所述目录读取任务分成N个子任务;/n异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;/n基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。/n

【技术特征摘要】
1.一种分布式系统的目录读取方法,应用于局部服务器,其特征在于,包括:
接收客户端发送的目录读取请求;
基于所述目录读取请求生成目录读取任务;
基于预设规则将所述目录读取任务分成N个子任务;
异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。


2.基于权利要求1所述的分布式系统的目录读取方法,其特征在于,所述基于预设规则将所述目录读取任务分成N个子任务,包括:
根据所述目录读取任务扫描待读取目录文件,获取待读取目录文件的目录文件数;
基于预设的每组文件个数,将所述目录文件分为N个分组,其中,分组数N=目录文件数/预设的每组文件个数;
基于所述分组数N将所述目录读取任务分成N个子任务。


3.基于权利要求2所述的分布式系统的目录读取方法,其特征在于,所述目录读取请求中包括待读取目录文件数,所述预设的每组文件个数根据所述待读取目录文件数确定。


4.基于权利要求1所述的分布式系统的目录读取方法,其特征在于,在所述基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端之前,还包括:依次将生成的所述目录读取结果进行缓存。


5.基于权利要求4所述的分布式系统的目录读取方法,其特征在于,在所述接收客户端发送的目录读取请求之后,还包括:
判断是否有缓存的所述目录读取结果;
若有,则将缓存的所述目录读取结果发送至客户端;
若没有...

【专利技术属性】
技术研发人员:缪烨刘江
申请(专利权)人:柏科数据技术深圳股份有限公司
类型:发明
国别省市:广东;44

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

1