[发明专利]基于Cuckoo哈希的文件系统目录管理方法及系统有效
| 申请号: | 202110356654.8 | 申请日: | 2021-04-01 |
| 公开(公告)号: | CN113094336B | 公开(公告)日: | 2022-11-01 |
| 发明(设计)人: | 陈志广;郑先淇;卢宇彤;胡泽杰;罗嘉文 | 申请(专利权)人: | 中山大学 |
| 主分类号: | G06F16/13 | 分类号: | G06F16/13 |
| 代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
| 地址: | 510275 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 cuckoo 文件系统 目录 管理 方法 系统 | ||
本发明公开了一种基于Cuckoo哈希的文件系统目录管理方法及系统,本发明包括对目录中作为目标文件的子目录或子文件读取元数据的步骤:接收针对目标文件的读请求,迭代采用Cuckoo哈希的第i个哈希函数对目标文件的名称filename进行哈希计算,根据哈希计算结果确定目录的哈希表对应的第i个备选数据块;若第i个备选数据块存在目标文件的名称filename则读出目标文件的元数据并返回,结束;否则继续迭代,直至迭代结束返回不存在目标文件的消息。本发明在文件访问的关键路径上延迟小,能够实现并发读操作,能够显著加速应用程序针对大目录的数据访问。
技术领域
本发明涉及计算机信息存储技术,具体涉及一种基于Cuckoo哈希的文件系统目录管理方法及系统。
背景技术
文件系统是一种常用的数据组织方法,目前各行业的大部分数据均保存在各类文件系统中。随着数据量的不断增长,文件系统的规模越来越大,单个目录内包含的子文件或子目录越来越多,在一个大目录中查找特定的文件会引入很大的延迟。大目录问题已成为设计高性能文件系统面临的重要挑战。当前的文件系统均采用复杂的数据结构为每个目录下的所有子目录或子文件建立一个索引,以便在文件访问时能够通过索引结构找到对应的文件。例如,著名的EXT类文件系统采用HTree结构为每个目录下的子目录和子文件建立索引。如图1所示,HTree是一个两级的树形结构,第一级是根节点,第二级为叶子节点。每个节点内部保存大量的条目(Entry),且这些条目之间是有序的,叶子节点中的每个条目对应一个子目录或子文件。一个子目录或子文件要插入到HTree中时,先采用一个哈希函数根据文件名计算出对应的哈希值。因为节点中的各个条目按照哈希值排序,可采用二分法查找根节点中的各个条目,从而导向到正确的叶子节点。叶子节点中的条目也是按照哈希值排序的,将待插入文件对应的条目插入到叶子节点中正确的位置即可。类似地,BtrFS采用B+树为每个目录建立一个索引。不同于EXT类文件系统,BtrFS并没有限制B+树的深度,因此相比于只有两级的HTree表现出更好的可扩展性。IndexFS采用GIGA+建立索引,GIGA+本质上也是一种树形结构,但具有更好的分裂性能。
EXT、BtrFS、IndexFS等文件系统采用层次式的树形结构为每个目录内的子目录和子文件建立索引。当应用程序访问一个大目录中的某个文件时,不可避免的要经历很长的访问延迟。主要原因在于:在树形结构中检索一个目标对象需要从根节点一直查找到叶子节点,即找到一条从根节点通往叶子节点的路径,此过程无法并发操作,只能从根节点开始逐层分析、确定下一层的走向、最终达到叶子节点,每解析一层都涉及大量的数据读写和计算,从而引入很大的延迟。以EXT文件系统采用的HTree为例,在HTree中检索一个文件需要先从存储设备中读出根节点并实施二分查找,确定目标叶子节点后将该节点从存储设备上读出,并再次实施二分查找,以上过程涉及两次不可并发读操作。类似地,BtrFS在B+树中查找一个文件时需要从B+树的根节点逐层检索到叶子节点,在每一次都需要至少一次读操作和相应的计算分析,且各层之间的操作是不能并发的。随着单个目录内的子文件和子目录总数越来越多,B+树的深度不断增大,在B+树中检索文件的延迟也会相应地增长。总之,采用树形结构为大目录建立索引会在文件访问的关键路径上引入很大的延迟。
发明内容
本发明要解决的技术问题:考虑到当前文件系统采用树形结构为大目录建立索引,树形结构不利于并发处理,这是文件访问延迟的关键所在,本发明提供一种基于Cuckoo哈希的文件系统目录管理方法及系统,本发明采用哈希表为每个目录中的子目录和子文件建立索引,哈希表是一种平面化的数据结构,适合于并发处理,在文件访问的关键路径上延迟小,能够实现并发操作,能够显著加速应用程序针对大目录的数据访问。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于Cuckoo哈希的文件系统目录管理方法,包括对目录中作为目标文件的子目录或子文件读取元数据的步骤:
1)接收对目录中目标文件的读请求;
2)针对目标文件读取Cuckoo哈希的num个哈希函数对应的备选数据块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110356654.8/2.html,转载请声明来源钻瓜专利网。





