[发明专利]一种对象存储设备中的对象查找方法有效
申请号: | 200910060552.0 | 申请日: | 2009-01-16 |
公开(公告)号: | CN101464901A | 公开(公告)日: | 2009-06-24 |
发明(设计)人: | 冯丹;何水兵;庞丽萍;谭支鹏;陆承涛;谢雨来;胡洋;秦亦 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 华中科技大学专利中心 | 代理人: | 方 放 |
地址: | 430074湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 对象 存储 设备 中的 查找 方法 | ||
技术领域
本发明属于计算机存储系统的数据存取方法,特别涉及一种对象存 储设备中的对象查找方法。
背景技术
在对象存储设备中,每个对象都有一个唯一的对象标志符ObjectID, 由于没有目录层次信息,所有的对象标志符构成了一个平面的名字空间。 目前,还没有设立对象接口的磁盘,一种普遍的做法是用通用文件系统 (如Ext2,Ext3)来对对象进行组织和管理:一个对象被映射成为一个 文件,设备上的所有对象,位于文件系统中的一个大目录下面。因此, 根据对象标志符定位对象索引节点的对象查找过程,被映射成为文件系 统下由文件名找文件索引节点的过程,并且这一过程包括两个阶段:(1) 从磁盘读取相应目录文件块到内存;(2)在相应内存块中,进行匹配查 找。然而,传统文件系统在大目录下根据文件名查找文件索引节点信息 时,会出现两个问题:一是目录文件需要多次读盘,二是查找子目录项 的线性查找算法效率低下(它的开销为O(n))。一个对象存储设备可能包 含2128个对象,面对如此巨大的平面名字空间,用传统文件系统下的方法 查找对象时,上述问题将尤其突出,以至降低了对象查找操作的效率, 从而严重影响了对象创建,对象删除和对象读写操作的性能。
有鉴于此,如何设计一种高效的对象查找方法,从而加快对象存储 设备上对象相关操作的性能显得及其重要。
发明内容
本发明提出一种对象存储设备中的对象查找方法,解决现有对象存 储设备上对象查找方法存在需要多次读盘以及线性查找算法效率低下的 问题。
本发明将对象标识符ObjectID和磁盘上的对象索引节点的位置 OnodeBlock,以记录的形式存放在磁盘块中,对象查找过程就是在这些 磁盘块中查找记录过程。通过采用动态的线性哈希技术对记录进行管理, 使得在多数情况下,只需要一次磁盘读操作便能找到对应的记录所在的 磁盘块,而在对记录进行匹配的同时,由于再次采用哈希技术,也在多 数情况下能一次找到想要的记录。由于减少了读盘操作次数和缩短了记 录平均查找长度,使得对象查找操作的性能得到了极大的提高,特别是 当OSD上包含数量巨大的对象时,这种方法的好处将更是明显。
本发明基于动态的线性哈希查找方法,构建在如下结构之上:记录, 哈希桶,哈希函数和索引结构体;其中,
记录:记录由对象标志符ObjectID和对象索引节点块号BlockNum 组成,其中对象标志符ObjectID为128位的无符号整数,对象索引节点 块号BlockNum为相应对象索引节点(Onode)在磁盘上的块号。本发明 中,一个对象索引节点占4096字节,里面存放对象大小、对象访问时间、 对象修改时间、对象创建时间和对象数据的位置等信息。对象索引节点 块号可以是磁盘上任何可能被分配的块号。在本发明的实施例中,对象 索引节点块号为32位无符号整数,它表明对象存储设备最大可以支持232×4096字节,即16TB的容量;如果要支持更大的磁盘空间,对象索引节 点块号可以取64或128位无符号整数。
哈希桶:哈希桶是一个存储单元,由磁盘上固定数目的磁盘块构成, 它最多存放J个记录和一个32位的溢出桶地址,所有记录的对象标志符 的哈希值的右边I位均相同,I由索引结构体中指定。本发明的实施例中 规定一个哈希桶由一个磁盘块构成,为4096字节;因此,一个哈希桶所 包含的记录数J为204个((4096×8-32)/(128+32)后取整)。当向一 个已满的哈希桶中添加新记录时,就另外创建一个同样大小的溢出桶, 哈希桶包含的溢出桶地址指向该溢出桶,新记录存放在该溢出桶中。本 发明中,使用主记录号表示根据记录哈希值算出的记录在哈希桶中的位 置;使用记录号表示哈希桶中动态查找的记录位置。
哈希函数:哈希函数HASH,它是一个将对象标志符ObjectID映射成 一个较小的哈希值hash_value的函数。
索引结构体,是一个数据结构,由I、N、R、HT 4个参数组成,其 中,I为二进制形式表示的哈希值中当前被使用的位数,N为当前哈希 桶数,R为当前记录总数,HT为含有N个表项的哈希表,它的每个表项 存放对应哈希桶在磁盘上的地址,以便通过它可以找到对应的哈希桶。 索引结构体在磁盘上的位置放在磁盘的超级块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910060552.0/2.html,转载请声明来源钻瓜专利网。