[发明专利]管理请求数据库系统中不存在的索引键的事务有效
申请号: | 201780066683.2 | 申请日: | 2017-12-14 |
公开(公告)号: | CN109906447B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | G.格雷费 | 申请(专利权)人: | 谷歌有限责任公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 金玉洁 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理 请求 数据库 系统 不存在 索引 事务 | ||
1.一种数据库管理系统,包括:
存储器,所述存储器包括:
索引,包括多个键和与多个键中的每个键相关联的至少一个记录;和
控制器,通信地耦合到存储器,所述控制器被配置为:
接收用于访问与所述多个键中的任何一个键都不匹配的第一请求的键的第一数据库事务;
从所述多个键中确定第一键,其中第一键的值最接近第一请求的键的值,并且是要么小于要么大于第一请求的键的值;
使用k分区函数将k个分区中的第一分区分配给第一请求的键,k分区函数被配置为使得k个分区中的至少部分中的每个分区被分配给与所述多个键中的任何一个键都不匹配的键的范围中的相应键,所述相应键中的每一个键具有在第一键的值和所述多个键的另一键的值之间的相应值,在所述多个键中所述多个键的另一键在第一键之前或之后;
向第一数据库事务发布用于第一分区的第一锁;
在第一数据库事务完成之前,接收用于访问与所述多个键中的任何一个键都不匹配的第二请求的键的第二数据库事务,其中,第二请求的键的值与第一键的值之间的小于或大于关系与第一请求的键的值与第一键的值之间的关系相同;
使用k分区函数将所述k个分区中的第二分区分配给第二请求的键;以及
基于确定第二分区与第一分区不同,向第二数据库事务发布用于第二分区的第二锁。
2.如权利要求1所述的数据库管理系统,其中,所述k分区函数包括模k函数。
3.如权利要求1所述的数据库管理系统,其中,所述k分区函数包括可以将其输入映射到k个分区中的一个的散列函数。
4.如权利要求1所述的数据库管理系统,其中,所述索引是主索引。
5.如权利要求1所述的数据库管理系统,其中,所述索引是基于主索引的属性形成的辅索引。
6.如权利要求1所述的数据库管理系统,其中,所述控制器还被配置为从多个键中确定第二键,第二键具有最接近且大于第一键的值的值,并且维护第一键和第二键之间的键值范围的范围锁。
7.如权利要求1所述的数据库管理系统,其中,所述第一锁是共享锁。
8.如权利要求1所述的数据库管理系统,其中,所述第一锁是独占锁。
9.如权利要求1所述的数据库管理系统,其中,所述控制器被配置为接收用于访问除第一请求的键之外的至少一个以上键的第一事务,并且对包括至少一个以上键的k分区中的一个或多个分区发布除第一锁之外的一个或多个锁。
10.一种管理访问数据库的事务的方法,包括:
接收用于访问索引的第一数据库事务,所述索引包括多个键和与多个键中的每个键相关联的至少一个记录,其中第一数据库事务请求访问与所述多个键中的任何一个键都不匹配的第一请求的键,
从所述多个键中确定第一键,其中第一键的值最接近第一请求的键的值,并且是要么小于要么大于第一请求的键的值;
使用k分区函数将k个分区中的第一分区分配给第一请求的键,k分区函数被配置为使得k个分区中的至少部分中的每个分区被分配给与所述多个键中的任何一个键都不匹配的键的范围中的相应键,所述相应键中的每一个键具有在第一键的值和所述多个键的另一键的值之间的相应值,在所述多个键中所述多个键的另一键在第一键之前或之后;
向第一数据库事务发布用于第一分区的第一锁;
在第一数据库事务完成之前,接收用于访问与索引的所述多个键中的任何一个键都不匹配的第二请求的键的第二数据库事务,其中,第二请求的键的值与第一键的值之间的小于或大于关系与第一请求的键的值与第一键的值之间的关系相同;
使用k分区函数将所述k个分区中的第二分区分配给第二请求的键;和
基于确定第二分区与第一分区不同,向第二数据库事务发布用于第二分区的第二锁。
11.如权利要求10所述的方法,其中,所述k分区函数包括模k函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌有限责任公司,未经谷歌有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780066683.2/1.html,转载请声明来源钻瓜专利网。