[发明专利]一种分布式文件系统中目录的存取方法有效
申请号: | 201110328295.1 | 申请日: | 2011-10-25 |
公开(公告)号: | CN102385623A | 公开(公告)日: | 2012-03-21 |
发明(设计)人: | 杨浩;马照云;马振杰;邵宗有;刘新春;苗艳超;王勇 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 100084 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 文件系统 目录 存取 方法 | ||
技术领域
本发明涉及分布式文件系统中目录项的组织方式,具体来说,涉及一种分布式文件系统中目录的存取方法。
背景技术
随着网络技术的飞速发展,各种网络应用对于存储的需求越来越大。网络应用的存储需求大致分为两种,一种是大文件为主的存储需求,如视音频网络应用,这类应用的特点是文件数目不多,但是单个文件的大小通常是GB甚至TB级别;另外一种以小文件为主的存储需求,如网上商城等,这类需求的特点是单个文件不大,但是文件数量巨大。
为了满足存储的需求,分布式文件系统被引入到各种网络应用中,这其中具有代表性的是是Google的Google FS,Hadoop的HDFS等。这类分布式文件系统的特点是对于大文件的操作有比较好的性能,但是如果单个目录下有数量巨大的小文件,则此类文件系统的检索目录项的效率则很难令人满意,尤其是对于非热点目录,即当前内存中没有缓存时,其延迟更为明显。究其原因,主要是由于当目录中的目录项数目较多时,目录文件的大小相对较大,检索时需要将所有目录内容全部读入磁盘,导致磁盘操作过多,浪费了大量时间;另一面,当目录项较多时,内存检索通常采用构建二叉树的方式来进行,建树所需要的时间会随着目录项数目的增加而变大。
发明内容
本发明旨在公开一种分布式文件系统中高效的目录项组织方法,来解决分布式文件系统中,当单个目录下存储有海量目录项时,目录项检索效率低下的问题。
一种分布式文件系统中目录的存取方法,
将单个目录中的目录项存储于同一个文件中,划分出目录子集,根据所述目录项的名称进行哈希运算,将目录项分配到目录子集中。
优选的,所述目录子集的个数为1024或其整数倍。
优选的,所述目录子集分块进行条带化存储,每个条带大小为256KB。
优选的,所述目录子集的条带在访问时采用内存映射直接映射到虚拟内存区域。
优选的,所述条带内的目录项采用二叉树方式存储。
优选的,所述条带头部存储条带内目录项的索引信息,所述索引信息只存储实际目录项在条带内的相对偏移,访问时去相应偏移中读取目录项。
优选的,所述索引按照目录项名称排序,对于条带内空闲的空间,虚拟出空闲空间目录项,并按空闲空间大小排序。
优选的,所述条带在初始化时,计算出该条带可以承载的最大目录项数目,在条带头部预留相应数目的空间存储索引信息。
优选的,初始化时,所述条带只有一个空闲目录项,该目录项为整个条带。
优选的,所述目录项需要添加时,首先根据字符串哈希计算出目录项所在的目录子集,然后遍历该子集中的所有条带;在条带的空闲目录项中二分查找,得到能够容纳目标目录项的最小空闲项,然后修改原空闲目录项大小,并将目标目录项初始化后,将其偏移插入到合法目录项的索引集合中。
优选的,所述空闲目录项如果比需要添加的目录项大很多,需要将该目录项拆分成一个新的空闲目录项和用于存储目标的目录项。
优选的,所述目录项在进行查找操作时,首先计算目录项子集,然后遍历该子集的各个条带块,根据合法目录项索引二分查找,直到找出目标目录项。
优选的,所述目录项需要删除时,需要先通过索引得到对应的目录项,然后修改其目录项内容,并根据前后目录项的性质,确定是否与前后的空闲目录项合并,如果不能合并,则生成一个新的空闲目录项,否则与前后空闲目录项合并;之后将目标目录项索引从合法目录项索引集合中删除,并将新生成的空闲目录项加入到空闲目录项索引集合当中去。
在本发明中,目录的内容使用文件来存储,对于目录中的目录项,通过对目录项名称进行哈希,将目录项分为若干子集。对于不同的子集,其在目录文件中按照条带化的方式进行存储,条带的大小相对较大,以使读取磁盘时能够充分利用底层文件系统的预读功能。对于每个子集的条带块中的所有目录项,采用二叉树的方式进行存储,以避免初次读取时需要建立二叉树。对于所有的条带块,采用内存映射(mmap)的方式进行访问,避免每次访问磁盘数据时进行内存分配、调用系统文件读写系统调用所带来的开销。
附图说明
图1是本发明中条带分块的结构图
图2是本发明中条带内部结构图
具体实施方式
下面结合附图做具体描述如下:
(1)对于单个目录,其所有目录项存储于同一个文件,对于所有的目录项,对其名称进行哈希,将其分为N个子集(本发明中,N选1024)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110328295.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:金属-氧化物-金属电容的制作方法
- 下一篇:处理拥塞通告报文的方法及设备