[发明专利]一种对象存储设备中的对象查找方法有效

专利信息
申请号: 200910060552.0 申请日: 2009-01-16
公开(公告)号: CN101464901A 公开(公告)日: 2009-06-24
发明(设计)人: 冯丹;何水兵;庞丽萍;谭支鹏;陆承涛;谢雨来;胡洋;秦亦 申请(专利权)人: 华中科技大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 华中科技大学专利中心 代理人: 方 放
地址: 430074湖北*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 对象 存储 设备 中的 查找 方法
【权利要求书】:

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;J为一个哈希桶最多存放的记录数;

(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的磁盘块内 容读到内存中的第二映射桶,第二记录号S初始化为0;将第一操作桶址 D1置为HT中第N-1项的值,将块号为D1的磁盘块内容读到内存中的第 一映射桶,将Splitflag置为1;

(2.18)在第二映射桶中取出第S个记录,判断该记录哈希值的二 进制形式从右往左的第I位是否等于1,是则将第二映射桶中第S个记录 置为空,将第二映射桶的内容写回到块号为D2的磁盘块中,转过程(2.4), 否则顺序进行;

(2.19)第二记录号S+1后除以J,所得余数赋予记录号S,判断是 否S=0,是则顺序进行,否则转过程(2.18);

(2.20)判断第二映射桶是否有溢出桶,是则顺序进行,否则置 Splitflag=0,转过程(2.23);

(2.21)将D2置为第二映射桶的溢出桶地址,将溢出桶内容从磁盘 读到内存中的第二映射桶,转过程(2.18);

(2.22)判断是否Splitflag=0,是则顺序进行,否则转过程(2.19);

(2.23)将内存中的映射结构体内容写回到磁盘块W中,等待用户 操作,分别转步骤(2)、(3)、(4);

(3)记录查找步骤:在读对象,写对象或者查看对象属性信息时进 行,顺序进行下述过程:

(3.1)从内存映射结构体中,取参数I、N、HT,以对象标志符为关 键字,根据哈希函数,计算出哈希值,取出哈希值对应的二进制形式的低 I位,并将该低I位二进制数换算为整数,记为M;

(3.2)判断是否M<N,是则顺序进行,否则转过程(3.9);

(3.3)将块号为HT中第M项值的磁盘块内容读到内存中的映射桶;

(3.4)主记录号H置为哈希值除以J的余数,记录号A初始化为主 记录号H;

(3.5)在映射桶中取出第A个记录,判断该记录的关键字是否为要 查找的对象标志符,是则顺序进行,否则转过程(3.7);

(3.6)返回第A个记录,转过程(3.12);

(3.7)记录号A+1后除以J,所得余数赋予记录号A,判断是否A= H,是则顺序进行,否则转过程(3.5);

(3.8)判断映射桶是否有溢出桶,是则顺序进行,否则转过程(3.11);

(3.9)将溢出桶内容从磁盘读到内存中的映射桶,转过程(3.5);

(3.10)将M设置为M-2(I-1),转过程(3.3);

(3.11)返回空记录;

(3.12)等待用户操作,分别转步骤(2)、(3)、(4);

(4)记录删除步骤:在删除一个已存在的对象时,进行下述过程:

(4.1)从内存映射结构体中,取参数I、N、R、HT,以对象标志符 为关键字,根据哈希函数,计算出哈希值,取出哈希值对应的二进制形式 的低I位,并将该低I位二进制数换算为整数,记为M;

(4.2)判断是否M<N,是则顺序进行,否则转过程(4.9);

(4.3)将操作桶址D置为HT中第M项的值,将块号为D的磁盘块 内容读到内存中的映射桶;

(4.4)主记录号H置为哈希值除以J的余数,记录号A初始化为主 记录号H;

(4.5)在映射桶中取出第A个记录,判断该记录的关键字是否为要 查找的对象标志符,是则顺序进行,否则转过程(4.7);

(4.6)删除映射桶中第A个记录,将映射桶的内容写回到块号为D 的磁盘块中,将R置为R-1,将内存中的映射结构体内容写回到磁盘块W 中,转过程(4.11);

(4.7)记录号A+1后除以J,所得余数赋予记录号A,判断是否A= H,是则顺序进行,否则转过程(4.5);

(4.8)判断映射桶是否有溢出桶,是则顺序进行,否则转过程(4.11);

(4.9)将操作桶址D置为映射桶的溢出桶地址,将溢出桶内容从磁 盘读到内存中的映射桶,转过程(4.5);

(4.10)将M设置为M-2(I-1),转过程(4.3);

(4.11)等待用户操作,分别转步骤(2)、(3)、(4);

所述步骤(2)、(3)、(4)根据用户操作类型独立运行;

所述记录由对象标志符和对象索引节点块号组成,其中对象标志符 为128位的无符号整数,对象索引节点块号为相应对象索引节点在磁盘 上的块号;

所述索引结构体,是一个数据结构,由I、N、R、HT 4个参数组成, 其中,I为二进制形式表示的哈希值中当前被使用的位数,N为当前哈 希桶数,R为当前记录总数,HT为含有N个表项的哈希表,它的每个表 项存放对应哈希桶在磁盘上的地址,以便通过它可以找到对应的哈希桶;

所述映射结构体,是一个数据结构,位于内存中,其数据结构和索 引结构体相同;

所述哈希桶,是一个存储单元,由磁盘上固定数目的磁盘块构成, 它最多存放J个记录和一个32位的溢出桶地址,所有记录的对象标志符 的哈希值的右边I位均相同,I由索引结构体中指定;

所述哈希表,为含有N个表项的表,它的每个表项存放对应哈希桶 在磁盘上的地址,以便通过它可以找到对应的哈希桶。

2.如权利要求1所述的对象查找方法,其特征在于:

所述记录插入步骤中,所述阈值t=P×J,P为实数,0<P<1,P过 小时,生成的空闲哈希桶过多,哈希表过大,磁盘空间浪费多;P过大时, 可能有较多的哈希桶有溢出桶,查找效率下降;J为一个哈希桶最多存 放的记录数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910060552.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top