[发明专利]用于基于特里数据结构的数据库的高效存储器内多版本并发控制在审
申请号: | 201980061597.1 | 申请日: | 2019-09-18 |
公开(公告)号: | CN112740197A | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 沃尔特·鲍尔 | 申请(专利权)人: | 森塞尔公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 谭营营;胡彬 |
地址: | 德国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 基于 特里 数据结构 数据库 高效 存储器 版本 并发 控制 | ||
1.一种用于在电子数据库应用程序或信息检索系统中确定特定版本的数据库对象的存储位置的计算机实施的方法,其中所述数据库对象的每个版本的索引被存储在具有对应于所述特定版本的根节点的特里中,所述方法包含:
通过访问对应于所述特定版本的所述特里的所述根节点来确定对应于所述特定版本的特里;
通过使用与所述数据库对象相关的辅助键作为搜索键遍历对应于所述特定版本的所述特里来确定所述数据库对象的对象标识符;
通过使用所确定的对象标识符作为搜索键遍历对应于所述特定版本的所述特里来确定所述数据库对象的所述存储位置。
2.根据权利要求1所述的方法,其中搜索键是对象标识符还是与数据库对象相关的辅助键的信息被包含在所述搜索键中。
3.根据前述权利要求中任一项所述的方法,其中辅助键包含关于在所述辅助键中编码的一个或多个特性的信息。
4.根据权利要求3所述的方法,其中在所述辅助键中编码的所述一个或多个特性包含名称、地址或类似项目中的一个。
5.根据前述权利要求中任一项所述的方法,其中索引被定义为具有键和值。
6.根据前述权利要求中任一项所述的方法,其中通过将所述辅助键作为键并将所述对象标识符作为值来定义第一索引,并且其中通过将所述对象标识符作为键并将所述数据库对象的所述存储位置作为值来定义第二索引。
7.根据前述权利要求中任一项所述的方法,其中具有对应于所述特定版本的根节点的所述特里是通过以下方式来创建的:
为所述特定版本创建新的根节点,
复制并修改关于具有对应于前一版本的根节点的前一特里的节点已被修改的节点,以及
创建指向所述前一特里中未被修改的节点的引用。
8.根据权利要求7所述的方法,其中创建具有对应于所述特定版本的根节点的所述特里是在事务期间执行的,并且所述特定版本与所述事务相关联。
9.根据权利要求8所述的方法,其中所述事务由事务标识符标识。
10.一种用于标识由一个或多个特里的特里节点占用的待释放的未使用存储器的计算机实施的方法,所述未使用存储器包含电子数据库应用程序或信息检索系统的数据库索引,其中所述方法包含:
存储包含一个或多个组块的数组,其中组块被配置成存储特里节点,并且其中所述数组至少包含第一组块,所述第一组块包含第一特里节点;
存储空闲组块列表,所述空闲组块列表指示所述数组的哪些组块空闲以存储新的特里节点;
在第一事务期间更新所述第一特里节点的同时,确定所述第一特里节点是否已经在所述第一事务期间创建;
取决于所述确定的结果将包含所述第一特里节点的所述第一组块添加到所述空闲组块列表。
11.根据权利要求10所述的方法,其中如果确定在所述第一事务期间已经创建了所述第一特里节点,则所述方法进一步包含:
将包含所述第一特里节点的所述第一组块添加到所述空闲组块列表。
12.根据权利要求10至11中任一项所述的方法,其中所述方法进一步包含确定所述第一特里节点是否已经在第二事务期间被创建;以及
如果确定在所述第一事务之前的第二事务期间已经创建了所述第一特里节点,则将包含所述第一特里节点的所述第一组块添加到未决空闲组块列表。
13.根据权利要求12所述的方法,其中将包含所述第一特里节点的所述第一组块添加到所述未决空闲组块列表包含在所述未决空闲组块列表中生成与所述第一事务相关联并包含对所述第一组块的引用的列表条目。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于森塞尔公司,未经森塞尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980061597.1/1.html,转载请声明来源钻瓜专利网。