[发明专利]一种ROWID映射表的存储和查询方法及装置有效
申请号: | 201910506515.1 | 申请日: | 2019-06-12 |
公开(公告)号: | CN110263057B | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 王岚;李登科;杨锐;陈勇铨;周华 | 申请(专利权)人: | 上海英方软件股份有限公司 |
主分类号: | G06F16/245 | 分类号: | G06F16/245;G06F16/22 |
代理公司: | 上海国智知识产权代理事务所(普通合伙) 31274 | 代理人: | 潘建玲 |
地址: | 201112 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rowid 映射 存储 查询 方法 装置 | ||
1.一种ROWID映射表的存储和查询方法,包括如下步骤:
步骤S1,根据ROWID结构建立层次性的ROWID映射表存储结构,以存储源端与目标端的ROWID映射表,所述层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块;
步骤S2,于进行ROWID映射表的存储和查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;
步骤S3,在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件;
步骤S4,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块;
步骤S5,将目标ROWID根据源SLOT的顺序存储在存储块内和根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
2.如权利要求1所述的一种ROWID映射表的存储和查询方法,其特征在于,所述ROWID映射表的存储结构的建立如下:
根据ROWID为每个数据对象编号OBJD创建一个目录;
在每个数据对象编号OBJD目录下为使用到的相对文件编号FNO创建一个文件;
将所述FNO文件以块为单位存储,以用于存储相应块编号BLKNO对应的源端与备端rowid映射数据。
3.如权利要求2所述的一种ROWID映射表的存储和查询方法,其特征在于:所述FNO文件中存储的文件内部格式分为文件索引区和数据区,所述文件索引区用于标记块编号BLKNO的使用情况,以及定位块编号BLKNO对应的存储位置,所述数据区用于存放具体的映射块数据。
4.如权利要求3所述的一种ROWID映射表的存储和查询方法,其特征在于:所述文件索引区共16384个单元,每单元2字节,0表示未使用,其它数字表示这一组实际使用的存储空间组号;所述数据区以组为单位,共16384组,每组256块。
5.如权利要求4所述的一种ROWID映射表的存储和查询方法,其特征在于,步骤S4进一步包括:
步骤S400,获取该FNO文件的文件索引区;
步骤S401,以源BLKNO除以256取整为组号,定位索引数据,以获取用于存储ROWID映射表的存储组号;
步骤S402,根据存储组号计算存储组在文件内的偏移;
步骤S403,根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。
6.如权利要求5所述的一种ROWID映射表的存储和查询方法,其特征在于:于步骤S401中,以源BLKNO除以256为组号,定位索引数据,若索引数据不为0,则直接获得相应的存储组号,若索引数值为0,则说明该BLKNO所在的组尚未分配存储空间,遍历索引区所有索引数据,以找到一个未使用的存储组号。
7.如权利要求6所述的一种ROWID映射表的存储和查询方法,其特征在于:若索引数值为0,遍历索引区所有索引数据,查询之前记录的最大索引数据X,在最大索引数据X基础上加1作为存储组号,并更新该存储组号到索引数据,以将FNO文件写入磁盘。
8.如权利要求6所述的一种ROWID映射表的存储和查询方法,其特征在于:所述存储组在文件内的偏移为32768+(存储组号–1)*块大小*256。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910506515.1/1.html,转载请声明来源钻瓜专利网。