【技术实现步骤摘要】
本专利技术属于计算机存储系统的数据存取方法,特别涉及一种对象存储设备中的对象查找方法。
技术介绍
在对象存储设备中,每个对象都有一个唯一的对象标志符ObjectID,由于没有目录层次信息,所有的对象标志符构成了一个平面的名字空间。目前,还没有设立对象接口的磁盘,一种普遍的做法是用通用文件系统(如Ext2,Ext3)来对对象进行组织和管理:一个对象被映射成为一个文件,设备上的所有对象,位于文件系统中的一个大目录下面。因此,根据对象标志符定位对象索引节点的对象查找过程,被映射成为文件系统下由文件名找文件索引节点的过程,并且这一过程包括两个阶段:(1)从磁盘读取相应目录文件块到内存;(2)在相应内存块中,进行匹配查找。然而,传统文件系统在大目录下根据文件名查找文件索引节点信息时,会出现两个问题:一是目录文件需要多次读盘,二是查找子目录项的线性查找算法效率低下(它的开销为O(n))。一个对象存储设备可能包含2128个对象,面对如此巨大的平面名字空间,用传统文件系统下的方法查找对象时,上述问题将尤其突出,以至降低了对象查找操作的效率,从而严重影响了对象创建,对象删除和对象读写操作的性能。有鉴于此,如何设计一种高效的对象查找方法,从而加快对象存储设备上对象相关操作的性能显得及其重要。
技术实现思路
-->本专利技术提出一种对象存储设备中的对象查找方法,解决现有对象存储设备上对象查找方法存在需要多次读盘以及线性查找算法效率低下的问题。本专利技术将对象标识符ObjectID和磁盘上的对象索引节点的位置OnodeBlock,以记录的形式存放在磁盘块中,对象查找过程就是在这些磁 ...
【技术保护点】
一种对象存储设备中的对象查找方法,包括: (1)系统初始化步骤:读取磁盘上的索引结构体块,根据其内容设置内存索引结构体的内容,等待用户操作,根据用户操作类型,分别转步骤(2)、(3)、(4); (2)对象记录插入步骤:创建一个新 对象时,将一条新的记录添加到对应的哈希桶中,同时,判断当前记录总数/当前哈希桶数的值是否超过给定阈值,以决定是否要添加一个新哈希桶到哈希表中;等待用户操作,分别转步骤(2)、(3)、(4); (3)对象记录查找步骤:在读对象,写对象或 者查看对象属性信息时进行,根据对象标志符,通过哈希表,在哈希桶中搜索记录是否存在,是则返回要查找的对象记录,否则返回空记录信息;等待用户操作,分别转步骤(2)、(3)、(4); (4)对象记录删除步骤:在删除一个已存在的对象时,删除相 应的一条记录;等待用户操作,分别转步骤(2)、(3)、(4); 所述步骤(2)、(3)、(4)根据用户操作类型独立运行。
【技术特征摘要】
1.一种对象存储设备中的对象查找方法,包括:(1)系统初始化步骤:读取磁盘上的索引结构体块,根据其内容设置内存索引结构体的内容,等待用户操作,根据用户操作类型,分别转步骤(2)、(3)、(4);(2)对象记录插入步骤:创建一个新对象时,将一条新的记录添加到对应的哈希桶中,同时,判断当前记录总数/当前哈希桶数的值是否超过给定阈值,以决定是否要添加一个新哈希桶到哈希表中;等待用户操作,分别转步骤(2)、(3)、(4);(3)对象记录查找步骤:在读对象,写对象或者查看对象属性信息时进行,根据对象标志符,通过哈希表,在哈希桶中搜索记录是否存在,是则返回要查找的对象记录,否则返回空记录信息;等待用户操作,分别转步骤(2)、(3)、(4);(4)对象记录删除步骤:在删除一个已存在的对象时,删除相应的一条记录;等待用户操作,分别转步骤(2)、(3)、(4);所述步骤(2)、(3)、(4)根据用户操作类型独立运行。2.如权利要求1所述的对象查找方法,其特征在于:(1).所述系统初始化步骤,顺序进行下述过程:(1.1)根据磁盘的超级块信息,找到磁盘上索引结构体所在的磁盘块号W,根据磁盘块号W,将磁盘上索引结构体内容读到内存中;(1.2)在内存中建立映射结构体,将映射结构体的内容,设置为读取的索引结构体的I、R、N、HT;(1.3)等待用户操作,根据用户操作类型,分别转步骤(2)、(3)、(4);(2).所述对象记录插入步骤,根据用户创建对象操作,进行下述过程:(2.1)从内存映射结构体中,取参数I、N、R、HT,以对象标志符为关键字,根据哈希函数,计算出哈希值,取出哈希值对应的二进制形式的低I位,并将其换算为整数,记为M,置R为R+1,将区分哈希桶是否要分裂的标志Splitflag置为0;(2.2)判断是否M<N,是则顺序进行,否则转过程(2.10);(2.3)将第一操作桶址D1置为HT中第M项的值,将块号为D1的磁盘块内容读到内存中的第一映射桶;(2.4)主记录号H置为所述哈希值除以J的余数,第一记录号F初始化为主记录号H;(2.5)在第一映射桶中取出第F个记录,判断该记录是否为空记录,是则顺序进行,否则转过程(2.7);(2.6)将新记录添加到第一映射桶中第F个记录的位置,同时将第一映射桶的内容写回到块号为D1的磁盘块中;转过程(2.12);(2.7)第一记录号F+1后除以J,所得余数赋予F,判断是否F=H,是则顺序进行,否则转过程(2.5);(2.8)判断第一映射桶是否有溢出桶,是则顺序进行,否则转过程(2.11);(2.9)将D1置为第一映射桶的溢出桶地址,将块号为D1的磁盘块内容从磁盘读到内存中的第一映射桶,转过程(2.4);(2.10)将M置为M—2(I-1),转过程(2.3);(2.11)在磁盘上分配块号为V的磁盘块作为第一映射桶的溢出桶,将第一映射桶的内容写回到块号为D1的磁盘块中;将第一映射桶的所有内容置为空,将新记录添加到第一映射桶中第H条记录位置,将第一操作桶址D1置为V,将第一映射桶的内容写回到块号为D1的磁盘块中;(2.12)判断是否R/N>t,t为给定的阈值,是则顺序进行,否则转过程(2.22);(2.13)在磁盘上分配块号为U的磁盘块为一个新哈希桶,将HT的第N项值置为U,将N置为N+1;(2.14)判断是否N>2I,是则顺序进行,否则转过程(2.16);(2.15)将I置为I+1;(2.16)判断N—1的I位二进制形式第一位是否为1,是则顺序进行,否则转过程(2.23);(2.17)将N—1的I位二进制形式的低I-1位换算成整数,记为K,将第二操作桶址D2置为HT中第K项的值,将块号为D2的磁盘块内容读到内存中的...
【专利技术属性】
技术研发人员:冯丹,何水兵,胡洋,陆承涛,庞丽萍,秦亦,谭支鹏,谢雨来,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:83[中国|武汉]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。