[发明专利]一种内存数据的非唯一索引检索方法有效

专利信息
申请号: 200710122869.3 申请日: 2007-07-06
公开(公告)号: CN101082935A 公开(公告)日: 2007-12-05
发明(设计)人: 朱红军;蒋恒;王小飞 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京安信方达知识产权代理有限公司 代理人: 许志勇;颜涛
地址: 518057广东省深圳市南山*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 内存 数据 唯一 索引 检索 方法
【权利要求书】:

1.一种内存数据的非唯一索引检索方法,其特征在于,包括以下步骤:

(1)建立生成内存数据的非唯一索引所需的参数标识,并根据所述参数标识分配索引注册表,计算非唯一索引的索引队列入口项的值,为索引字段加上关键字标志,将索引的记录号记录到索引关键字中去;

(2)获得记录在索引注册表中的索引匹配类型,从内存数据表中记录的元数据Meta信息获得当前游标指向的记录号,然后结合给定索引关键字匹配索引项,并插入索引项;

(3)合成索引关键字,并利用合成的索引关键字匹配索引项,查找定位内存数据。

2.如权利要求1所述的方法,其特征在于,步骤(1)中所述参数标识,包括:索引匹配类型、索引类型、索引关键字长度、索引关键字名称以及索引关键字在表中的序号。

3.如权利要求1所述的方法,其特征在于,步骤(1)中分配索引注册表,还包括以下步骤:

(1a)从变量参数中逐个的获取用来建立索引的字段名;

(1b)由字段名获得字段的注册信息,并依据字段的注册信息计算索引关键字的长度和数目;

(1c)遍历索引注册表对象,寻一未分配的注册内存空间,初始化其索引句柄、对应的内存数据表句柄、索引类型以及索引关键字的长度,并计算非唯一索引的索引队列入口项的值;

(1d)逐个给索引字段加上关键字标志,将索引的记录号记录到索引关键字中去。

4.如权利要求1所述的方法,其特征在于,所述结合给定的索引关键字匹配索引项,还包括以下步骤:

(21a)判断索引的主类型,如果是顺序索引,执行步骤21b;如果是一次哈希OTHASH类型索引,则执行步骤21c;

(21b)通过计算获得最后索引项,利用二分折半查找法,当索引项中记录的关键字与合成的关键字相同时,则根据索引项的入口值,得到索引队列的队列哑元,从而根据队列哑元中的记录获得记录号;

(21c)将生成的索引关键字,按照双字节类型拷贝到OTHASH类型的索引关键字结构的缓冲中去;并根据索引关键字,计算得到索引的入口值,通过入口值,计算得到索引入口的地址,从而根据入口中记录的队列头记录号,并将索引的入口值缓存到注册表中。

5.如权利要求4所述的方法,其特征在于,所述插入索引项,还包括以下步骤:

(22a)如果是顺序索引,该索引项还未存在,需要将当前索引数据区下移一个索引项长,初始化当前索引项入口值,即索引双向队列哑元,将关键字拷贝至索引项,并将索引数加1,然后执行步骤22b;

如果是OTHASH类型,判断当前索引队列为空,则将索引数加1,然后执行步骤22b;

(22b)当记录索引没有创建时,即自身的索引项号、前驱、后继皆为零并且索引项哑元的后继不等于自身,将队列哑元缓存到索引队列头中,接着将索引项链接到索引队列,并产生新的队列哑元,同时缓存新的哑元,并将索引深度加1;

(22c)如果插入不成功,则需回滚索引状态。

6.如权利要求1所述的方法,其特征在于,合成索引关键字,还包括以下步骤:

(3a)由索引句柄得到索引在注册表索引信息,并进一步得到内存数据表句柄;

(3b)判断关键字合成方法,如果是一次散列,则执行步骤3c;如果不是OTHASH类型,则执行步骤3d;

(3c)将一次散列关键字缓冲区转换为双字节类型,并依次将各字段类型转换为双字节类型,同时赋给缓冲区,合成索引关键字的流程结束;

(3d)将关键字缓冲区转换为字符串类型,对于定义的每一个需要合成的索引关键字字段,执行步骤3e到步骤3g;

(3e)从索引注册表中获得索引关键字字段号,并判断记录号的有效性;

(3f)从内存数据表的META信息中,得到关键字字段的描述信息,获得关键字字段的字段长度,用来作为合成索引关键字在关键字缓冲区中的偏移量;

(3g)根据索引关键字的类型,判断索引关键字长度,如果是单个值,从变量参数中获得索引关键字的值,并将其转存入关键字缓冲区;如果是数组,将传入的变量参数转换成相应指针类型,并根据传入的地址,和关键字长度进行内存拷贝;最后,将临时指针指向关键字最后一位。

7.如权利要求1所述的方法,其特征在于,利用合成的索引关键字匹配索引项,查找定位内存数据,包括以下步骤:

(31a)根据合成的索引关键字,匹配索引表项,获得内存数据记录号;

(31b)移动数据游标指向当前记录,将当前记录的值缓存临时空间;

(31c)根据输入记录号访问该记录对应索引项,从索引项中获取下一记录号,从而可获非唯一索引当前索引队列输入记录号的下一条记录号;

(31d)根据记录号移动数据游标,获得内存数据的值。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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