[发明专利]减少索引维护开销的多版本管理方法有效
| 申请号: | 201510664805.0 | 申请日: | 2015-10-14 |
| 公开(公告)号: | CN105183915B | 公开(公告)日: | 2018-08-17 |
| 发明(设计)人: | 周晓云;覃雄派 | 申请(专利权)人: | 江苏师范大学;中国人民大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 何龙其 |
| 地址: | 221116 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 减少 索引 维护 开销 版本 管理 方法 | ||
1.一种减少索引维护开销的多版本管理方法,其特征在于:在数据库表格中存放记录的不同版本,数据库系统提取存放记录的物理ID;所述数据库表格中设有一个以上的索引,赋予每个记录一个逻辑ID,索引的叶子节点保存记录的逻辑ID;建立逻辑ID到物理ID的映射表,同时维护逻辑ID到物理ID的映射表:
当更新一个记录的时候,在数据库表格中生成新的一个记录,链表指向新记录的物理ID;同时,映射表做相应的更新,把更新前相应的记录的逻辑ID映射到新记录的物理ID;
当一个记录被删除,映射表里的该记录对应的逻辑ID到物理ID的映射条目被删除;在进行索引扫描时,通过索引找到具体的数据记录,由于映射表没有这样的映射,所以删除的记录将不被检索到;而索引叶节点上的无效的逻辑ID在访问该索引的时候删除;对于删除以后,就从来没有被访问过的记录,需要一个脱机的处理过程,统一地把索引里面,没有出现在映射表中的逻辑ID全部删除掉;
当增加一个记录的时候,记录增加到数据库表格的末尾,数据库系统提取其物理ID,同时对该记录赋予一个新的逻辑ID,该物理ID和新的逻辑ID进行关联,加入到映射表;除了更新映射表的条目,所有的索引都需要用新的逻辑ID进行更新;
在进行索引扫描的时候,通过索引访问数据库表格时,需要根据映射表,把逻辑ID转换成物理ID,然后根据物理ID找到其对应的记录;如果物理ID为空、或者映射表没有该逻辑ID的条目,则表明某个记录已经被删除,扫描过程忽略这样的记录即可。
2.根据权利要求1所述的减少索引维护开销的多版本管理方法,其特征在于:所述索引包括基于用户ID字段的索引、基于日期字段的索引。
3.根据权利要求1所述的减少索引维护开销的多版本管理方法,其特征在于:所述索引采用B+树形式;所述B+树的阶数为k,其中,K>=3,树形结构的内部节点包括分割键值key和指向子节点的指针。
4.根据权利要求1所述的减少索引维护开销的多版本管理方法,其特征在于:所述映射表中记录逻辑ID、最近提交的版本的物理ID、最近未提交的版本的物理ID、下一个历史提交版本的指针。
5.根据权利要求1所述的减少索引维护开销的多版本管理方法,其特征在于:所述映射表带有一个辅助数据结构,以链条的方式保存记录的历史提交版本。
6.根据权利要求1所述的减少索引维护开销的多版本管理方法,其特征在于:对当前已经提交的版本读写数据的方法:
对当前已经提交的版本读数据的时候,在当前已经提交的版本上加读锁,当前提交版本通过从映射表的最近已经提交版本物理ID进行提取即可,该ID可以直接用于找到记录的确切的物理位置;
对当前已经提交的版本写数据的时候,对当前已经提交的版本上加写锁,生成新的一个未提交的版本;
对当前已经提交的版本确认写入,进行事务收尾工作时,首先对记录施加一个确认锁,只需把写锁进行升级就可以了;
事务提交时,新提交的记录版本成为最近提交的版本,所有的读锁、写锁释放掉,历史提交版本被迁移到历史版本缓冲区,缓冲区需要保存记录的物理ID和链接关系,新提交的记录版本保存在数据文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏师范大学;中国人民大学,未经江苏师范大学;中国人民大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510664805.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种阀体优化设计方法
- 下一篇:一种基于云数据的旅游景区电子地图协同制作系统





