文件管理方法及装置制造方法及图纸

技术编号:8626124 阅读:163 留言:0更新日期:2013-04-25 23:15
本发明专利技术提供了一种文件管理方法及装置,涉及存储技术领域。该方法包括:接收对目标文件的访问请求;根据所述目标文件的文件名查找所述目标文件对应的目录;使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息。本发明专利技术实施例的方法及装置把目录元数据中顺序组织的列表记录信息改为多级分层结构组织,每级结构对应不同数量的哈希桶,访问目标文件时,对目标文件的文件名做哈希运算,根据哈希运算的计算结果进行对目标文件相应的访问操作,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度,从而提高系统的适应性。

【技术实现步骤摘要】

本专利技术涉及存储
,尤其涉及一种文件管理方法及装置
技术介绍
随着大数据时代的到来,客户的应用越来越多样化,数据量也越来越大,选用分布式文件系统保存不同应用的数据成为主流趋势。单一系统支持的客户应用越来越多,对分布式文件系统需要支持的文件数量也就提出了更大的需求,因而导致单个目录下的文件也越来越多。目前一般的文件系统都采用传统的目录树形式组织元数据,如图1所示。目录下顺序保存各文件的列表信息(entry信息),包括文件名和文件元数据信息的保存位置,图2就是一个目录dirl的元数据信息示例。如图2所示,目录的元数据信息首先是目录的各种属性,然后是该目录下各文件的列表记录信息,该信息一般包括文件名和文件元数据信息在磁盘上的保存位置。在目录下新增一个文件,要求遍历该目录的列表,检查同名的文件是否已经存在,如果不存在,则创建该文件,在磁盘上记录文件的元数据信息;然后,把文件的列表记录信息插入到其父目录元数据列表中。访问目录下的某个文件时,也要遍历目录的元数据列表,找到相对应的列表记录信息,进而获得该文件元数据信息在磁盘上的存储位置,才能查到该文件的属性信息。如图2所示,如果要访问是“列表记录In”对应的文件,首先要遍历目录dirl的列表,在列表的最后找到该文件的列表记录信息,在列表中获得文件列表记录In元数据的存储位置,从而查得该文件的元数据信息。在现有的这种顺序保存目录列表信息的方式下,查询文件属性时必须遍历元数据列表,随着目录下文件越来越多,查询的时间也越来越长。在当前一般的文件系统中,一个目录下文件数量达到上万时,就能明显感觉到操作延迟,当目录下文件数量达到千万时,操作延迟就不能接受了。所以目前这种列表信息顺序组织形式,单目录下支持的文件数不能太大,因而也就不能满足日益增大的文件系统的要求。由于单目录下支持大量文件会逐渐增大文件的访问延迟,因而限制了目前分布式文件系统的规模,或者为了保证访问速度,要求系统管理员必须规划系统的目录结构,限制单目录下文件的个数,这样会影响系统的适应性,限制系统的应用场景。
技术实现思路
有鉴于此,本专利技术所要解决的问题是提供一种文件管理方法及装置,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度。为了解决上述问题,第一方面,本专利技术实施例提供了一种文件管理方法,包括接收对目标文件的访问请求;根据所述目标文件的文件名查找所述目标文件对应的目录;使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述散列值所述目标哈希桶,查找所述目标文件对应的列表记录信息;其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。结合第一方面,在第一种可能的实现方式中,每个哈希桶包括属性字段,所述属性字段用于标识所述哈希桶对应的散列值、级数、以及上级哈希桶的存储位置,且除最后一级哈希桶外,每级哈希桶的每个哈希桶的属性字段还包括下级各哈希桶的存储位置。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,使用每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,查找所述目标文件对应的列表记录信息具体包括根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值;根据所述散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;若所述目标文件对应的列表记录信息在所述目标哈希桶中,则返回查询到的所述目标文件的列表记录信息,否则,判断当前级哈希桶是否为最后一级哈希桶;若当前级哈希桶为最后一级哈希桶,则结束,否则,查找所述目标哈希桶的下一级哈希桶。结合第一方面或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述访问请求为插入目标文件的请求,所述方法还包括在未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级哈希桶中的目标哈希桶中。结合第一方面或第一方面的第一至第三种可能的实现方式中的任一种,在第四种可能的实现方式中,所述访问请求为删除目标文件,所述方法还包括在查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。结合第一方面或第一方面的第一至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,每一级哈希桶中所包括的哈希桶的个数大于其前一级哈希桶中所包含的哈希桶的个数,且除最后一级哈希桶外,每级哈希桶中的每个哈希桶用于保存预设数量的列表记录信息。第二方面,本专利技术实施例提供了一种文件管理装置,包括接收单元,用于接收对目标文件的访问请求;查找单元,用于根据所述目标文件的文件名查找所述目标文件对应的目录;还用于使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录/[目息;其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。结合第二方面,在第一种可能的实现方式中,所述查找单元包括哈希运算模块,用于根据当前级哈希桶的哈希函数对所述目标文件做哈希运算,得到对应的散列值;查找模块,用于根据所述哈希运算模块计算得到的散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;判断模块,用于根据查找模块查找的结果,返回查询到的所述目标文件的列表记录信息,或返回所述查找模块查找所述目标哈希桶的下一级哈希桶。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括记录单元,用于在所述查找单元未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录插入至未满的下一级哈希桶中的目标哈希桶中。结合第二方面或第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,还包括删除单元,用于在所述查找单元查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。本专利技术实施例的方法把目录元数据中顺序组织的列表信息改为多级分层结构组织,每级结构对应不同数量的哈希桶,访问目标文件时,对目标文件的文件名做哈希运算,根据哈希运算的计算结果进行对目标文件相应的访问操作,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度,从而提高系统的适应性。根据下面参考附图对示例性实施例的详细说明,本专利技术的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的说明书附图与说明书一起示出了本专利技术的示例性实施例、特征和方面,并且用于解释本专利技术的原理。图1为传统的目录树形式组织元数据的示意图;图2为目录dir I的元数据信息示意图;图3为本专利技术实施例本文档来自技高网
...

【技术保护点】
一种文件管理方法,其特征在于,包括:接收对目标文件的访问请求;根据所述目标文件的文件名查找所述目标文件对应的目录;使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。

【技术特征摘要】
1.一种文件管理方法,其特征在于,包括 接收对目标文件的访问请求; 根据所述目标文件的文件名查找所述目标文件对应的目录; 使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息; 其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。2.根据权利要求1所述的方法,其特征在于,每个哈希桶包括属性字段,所述属性字段用于标识所述哈希桶对应的散列值、级数、以及上级哈希桶的存储位置,且除最后一级哈希桶外,每级哈希桶的每个哈希桶的属性字段还包括下级各哈希桶的存储位置。3.根据权利要求1或2所述的方法,其特征在于,使用每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,查找所述目标文件对应的列表记录信息具体包括 根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值; 根据所述散列值找到目标哈希桶,并遍历所述目标哈希桶查找所述目标文件对应的列表记录信息; 若所述目标文件对应的列表记录信息在所述目标哈希桶中,则返回查询到的所述目标文件的列表记录信息,否则,判断当前级哈希桶是否为最后一级哈希桶; 若当前级哈希桶为最后一级哈希桶,则结束,否则,查找所述目标哈希桶的下一级哈希桶。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述访问请求为插入目标文件的请求,所述方法还包括 在未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级哈希桶中的目标哈希桶中。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述访问请求为删除目标文件,所述方法还包括 在查找到所述目标文件对应的列表记录信息时,删...

【专利技术属性】
技术研发人员:郝志敏刘军李红
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1