一种基于分布式文件系统的目录更新方法及元数据服务器技术方案

技术编号:20025567 阅读:18 留言:0更新日期:2019-01-06 04:28
本申请实施例公开了一种基于分布式文件系统的目录更新方法及元数据服务器。该方法首先获取客户端发送的创建新文件的请求,其后,根据请求创建新文件。请求中携带有由客户端根据本地缓存的多级目录构建而成的新文件目录链表,该方法还根据该目录链表,更新元数据服务器中对新文件的多级目录的统计信息。该方法能够对新文件的父目录和父目录以上的各层级目录的统计信息进行更新,相对于现有技术,保障了目录统计信息的准确性,避免分布式文件系统的文件高级功能因目录统计不准确而出现异常。另外,该方法节省向其它元数据服务器查找所需更新的目录的时间,因此能够在快速创建文件的同时实现目录的及时快速更新。

【技术实现步骤摘要】
一种基于分布式文件系统的目录更新方法及元数据服务器
本申请涉及分布式文件系统领域,特别是涉及一种基于分布式文件系统的目录更新方法及元数据服务器。
技术介绍
目前,互联网产生的大量数据已经难以由传统单一的服务器系统处理。传统集中式系统的扩展能力有限。随着对超大规模数据的存储、分析和处理的需求不断增长,分布式系统应运而生。分布式文件系统是分布式系统的一种,相对于本地文件系统来说,分布式文件系统主要是把文件存储在多个数据服务器上。其主要分为:元数据服务器,存储服务器,客户端组成。用户可通过客户端访问元数据服务器和存储服务器,实现文件数据的存储。在元数据服务器上主要存储的是元数据信息,对于文件系统来说,需要在创建新文件时统计目录下面子目录和子文件的数量,因此需要及时更新文件目录。目前,为了保证文件创建的速度不至于过慢,在更新目录时仅仅更新所创建文件的父目录,但是对于祖先目录以及祖先目录的父目录等上级目录则不进行更新。但是这种更新方式存在一些问题,例如,如果不更新祖先目录以及祖先目录的父目录等上级目录的统计信息,就会导致文件系统目录配额等一些文件高级功能在需要使用到目录文件个数统计值的时候,无法及时准确获取到文件个数信息,进而导致这些高级功能出现异常。因此,如何在保证文件创建速度的同时,及时更新祖先目录以及祖先目录的父目录等上级目录的统计信息,成为分布式文件系统领域急需解决的问题。
技术实现思路
基于上述问题,本申请提供了一种基于分布式文件系统的目录更新方法及元数据服务器,以在保证创建文件的速度较快的同时,及时更新文件父目录以上的各层级目录的统计信息。本申请实施例公开了如下技术方案:本申请第一方面提供一种基于分布式文件系统的目录更新方法,所述方法应用于元数据服务器,所述方法包括:获取客户端发送的创建新文件的请求,所述请求中携带所述新文件的目录链表;所述目录链表,为由所述客户端根据本地缓存的多级目录构建而成,所述多级目录包括:所述新文件的父目录,和所述父目录以上的各层级目录;根据所述请求创建所述新文件,以及,根据所述目录链表,更新所述元数据服务器中对所述新文件的多级目录的统计信息。可选的,所述更新所述元数据服务器中对所述新文件的多级目录的统计信息,具体包括:更新所述元数据服务器中,统计的所述新文件的父目录下文件和文件个数,以及,更新所述元数据服务器中,统计的所述父目录以上的各层级目录下文件和文件个数。本申请第二方面提供一种元数据服务器,该元数据服务器包括:获取模块,创建模块和更新模块;所述获取模块,用于获取客户端发送的创建新文件的请求,所述请求中携带所述新文件的目录链表;所述目录链表,为由所述客户端根据本地缓存的多级目录构建而成,所述多级目录包括:所述新文件的父目录,和所述父目录以上的各层级目录;所述创建模块,用于根据所述请求创建所述新文件;所述更新模块,用于根据所述目录链表,更新对所述新文件的多级目录的统计信息。可选的,所述更新模块,具体包括:第一更新子模块和第二更新子模块;所述第一更新子模块,用于更新统计的所述新文件的父目录下文件和文件个数;所述第二更新子模块,用于更新统计的所述父目录以上的各层级目录下文件和文件个数。相较于现有技术,本申请具有以下有益效果:本申请提供的基于分布式文件系统的目录更新方法应用于元数据服务器,首先获取客户端发送的创建新文件的请求,其后,根据请求创建新文件。由于请求中携带有由客户端根据本地缓存的多级目录构建而成的新文件目录链表,该方法还根据该目录链表,更新元数据服务器中对新文件的多级目录的统计信息。由于目录链表是客户端根据新文件的父目录,和父目录以上的各层级目录构建而成的,因此该方法能够对新文件的父目录和父目录以上的各层级目录的统计信息进行更新,保障了目录的统计信息的准确性,避免分布式文件系统的文件高级功能因目录统计不准确而出现异常。另外,本申请提供的目录更新方法,利用由客户端根据本地缓存构建的目录链表来更新元数据服务器中新文件的目录,无需耗费时间向其它元数据服务器查找所需更新的目录,因此能够在快速创建文件的同时实现目录的及时快速更新。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的基于分布式文件系统的目录更新方法流程图;图2为本申请实施例提供的元数据服务器的结构示意图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。首先,对本申请的研究背景进行介绍。目前,在一个目录下创建新文件的时候,元数据服务器会统计更新其父目录的统计信息,但是对于祖先目录以及祖先目录的父目录等上级目录,如果目录层级较多的话,元数据服务器需要花费时间去查找所有需要更新的父目录以及父目录以上的各层级目录。但是,对于元数据服务器来说,新文件的父目录以及祖先目录等信息很可能不在同一个元数据服务器上存储,因此,为查找所有需要更新的父目录以及父目录以上的各层级目录,需要不同元数据服务器之间不断通信,才能查找到这些信息,如此导致目录更新速度过慢。出于对创建文件的速度的考虑,分布式文件系统不会更新祖先目录以及祖先目录的父目录等上级目录的统计信息,这就导致更新祖先目录以及祖先目录的父目录等上级目录的统计不及时,在文件系统目录配额等一些文件高级功能需要使用到目录文件个数统计值的时候,无法及时准确获取到文件个数信息,因此这些高级功能经常会出现异常。为解决上述问题,专利技术人经过研究,提出了一种基于分布式文件系统的目录更新方法和元数据服务器。下面结合附图对本申请提供的方法和元数据服务器进行详细描述。参见图1,该图为本申请实施例提供的基于分布式文件系统的目录更新方法流程图。如图1所示,本申请实施例提供的基于分布式文件系统的目录更新方法,包括:步骤101:元数据服务器获取客户端发送的创建新文件的请求,请求中携带新文件的目录链表。由于客户端本地缓存有需要创建的新文件的父目录,和父目录以上的各层级目录,例如祖先目录和祖先目录的父目录等,专利技术人经过研究发现,这些缓存的多级目录可用于更新元数据服务器端的新文件目录,从而无需元数据服务器耗费时间向其它元数据服务器查询缺失的目录信息。在本实施例中,可由客户端根据本地缓存的上述多级目录构建目录链表。作为一种可选的实施方式,客户端查询缓存中新文件的父目录以及父目录以上的各层级目录,之后,将这些目录按照层级关系连接起来,构造成目录链表。目录链表中,各级目录中具有父子关系的目录之间具有指向性。作为一示例,父目录指向祖先目录(即父目录的父目录),祖先目录指向祖先目录的父目录。指向祖先目录的目录的个数即为祖先目录下文件个数,以此类推。作为另一示例,祖先目录指向父目录,祖先目录的父目录指向祖先目录。祖先目录所指向的目录的个数即为祖先目录下文件个数,以此类推。在本实施例中,可由客户端发送创建新文件的请求时,将新文件的目录链表携带其中,进而元数据服务器获取客户端发送的创建新文件的请求时,能够获取到其中携本文档来自技高网...

【技术保护点】
1.一种基于分布式文件系统的目录更新方法,其特征在于,所述方法应用于元数据服务器,所述方法包括:获取客户端发送的创建新文件的请求,所述请求中携带所述新文件的目录链表;所述目录链表,为由所述客户端根据本地缓存的多级目录构建而成,所述多级目录包括:所述新文件的父目录,和所述父目录以上的各层级目录;根据所述请求创建所述新文件,以及,根据所述目录链表,更新所述元数据服务器中对所述新文件的多级目录的统计信息。

【技术特征摘要】
1.一种基于分布式文件系统的目录更新方法,其特征在于,所述方法应用于元数据服务器,所述方法包括:获取客户端发送的创建新文件的请求,所述请求中携带所述新文件的目录链表;所述目录链表,为由所述客户端根据本地缓存的多级目录构建而成,所述多级目录包括:所述新文件的父目录,和所述父目录以上的各层级目录;根据所述请求创建所述新文件,以及,根据所述目录链表,更新所述元数据服务器中对所述新文件的多级目录的统计信息。2.根据权利要求1所述的方法,其特征在于,所述更新所述元数据服务器中对所述新文件的多级目录的统计信息,具体包括:更新所述元数据服务器中,统计的所述新文件的父目录下文件和文件个数,以及,更新所述元数据服务器中,统计的所述父目录以上的各层级目录下文件和文件个数。...

【专利技术属性】
技术研发人员:牛勇刚
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1