This disclosure provides systems, methods and devices for managing locks of keys that do not exist in the index of a database. The system can receive a first transaction for accessing the key of a first request that does not match any of the keys in the index. The system uses the partitioning function to partition the key of the first request to the first partition. The system can also receive a second transaction for accessing the key of a second request that does not match any of the keys in the index. The system also partitions the key of the second request to the second partition using the partition function. Only when the second partition is different from the first partition does the system allocate locks to the second transaction.
【技术实现步骤摘要】
【国外来华专利技术】管理请求数据库系统中不存在的索引键的事务相关专利申请的交叉引用本申请要求2016年12月14日提交系列号为62/433,944的美国临时专利申请、2017年1月13日提交的系列号为15/405,841的美国专利申请和2017年1月13日提交的系列号为15/405,846的美国专利申请,题为“用于在数据库中分配锁的系统和方法(SYSTEMSANDMETHODSFORASSIGNINGLOCKSINDATABASES)”的权益和优先权,其中每一个专利都通过引用整体结合于此。
本公开涉及数据库系统领域,并且具体涉及包括索引的事务型数据库系统。
技术介绍
数据库管理系统可以在数据库中存储、处理和保护数据。数据库读取和写入事务被定向到数据库管理系统,数据库管理系统处理事务并在数据库上执行任务以执行接收到的事务。在一些实施方式中,为了维护并发性,数据库管理系统可以向接收到的事务发布锁,以锁定事务需要访问的数据库的一部分。如果事务请求的数据库的一部分已被锁定,则该事务将暂停,直到锁变为可用。一旦事务完成,数据库的该部分就会被解锁。在一些实施方式中,数据库可以是被索引的,其具有多个键(key)和与多个键中的每一个相关联的记录。系统接收的事务可以查询或更新与索引的多个键中的一个或多个键相关联的一个或多个记录。
技术实现思路
根据一个方面,本公开中描述的主题涉及一种数据库管理系统,该系统包括具有索引的存储器,该索引包括多个键和与多个键中的每一个相关联的至少一个记录。该系统还包括可通信地耦合到存储器的控制器,其中控制器被配置为接收用于访问与多个键中的任何一个都不匹配的第一请求的键的 ...
【技术保护点】
1.一种数据库管理系统,包括:存储器,所述存储器包括:索引,包括多个键和与多个键中的每个键相关联的至少一个记录;和控制器,通信地耦合到存储器,所述控制器被配置为:接收用于访问与所述多个键中的任何一个键都不匹配的第一请求的键的第一事务,从所述多个键中确定第一键,其中第一键的值最接近第一请求的键的值,并且是小于和大于第一请求的键的值中的一个,使用k分区函数将k个分区中的第一分区分配给第一请求的键,向第一事务发布用于第一分区的第一锁,接收用于访问与所述多个键中的任何一个键都不匹配的第二请求的键的第二事务,其中,第二请求的键的值与第一键的值之间的小于或大于关系与第一请求的键的值与第一键的值之间的关系相同,使用k分区函数将所述k个分区中的第二分区分配给第二请求的键,以及基于确定第二分区与第一分区不同,向第二事务发布用于第二分区的第二锁。
【技术特征摘要】
【国外来华专利技术】2016.12.14 US 62/433,944;2017.01.13 US 15/405,841;1.一种数据库管理系统,包括:存储器,所述存储器包括:索引,包括多个键和与多个键中的每个键相关联的至少一个记录;和控制器,通信地耦合到存储器,所述控制器被配置为:接收用于访问与所述多个键中的任何一个键都不匹配的第一请求的键的第一事务,从所述多个键中确定第一键,其中第一键的值最接近第一请求的键的值,并且是小于和大于第一请求的键的值中的一个,使用k分区函数将k个分区中的第一分区分配给第一请求的键,向第一事务发布用于第一分区的第一锁,接收用于访问与所述多个键中的任何一个键都不匹配的第二请求的键的第二事务,其中,第二请求的键的值与第一键的值之间的小于或大于关系与第一请求的键的值与第一键的值之间的关系相同,使用k分区函数将所述k个分区中的第二分区分配给第二请求的键,以及基于确定第二分区与第一分区不同,向第二事务发布用于第二分区的第二锁。2.如权利要求1所述的数据库管理系统,其中,k分区函数包括模k函数。3.如权利要求1所述的数据库管理系统,其中,所述k分区函数包括可以将其输入映射到k个分区中的一个的散列函数。4.如权利要求1、2或3所述的数据库管理系统,其中,第二事务在完成第一事务之前被接收。5.如前述权利要求中任一项所述的数据库管理系统,其中,所述索引是主索引。6.如权利要求1至5中任一项所述的数据库管理系统,其中,所述索引是基于主索引的属性形成的辅索引。7.如前述权利要求中任一项所述的数据库管理系统,其中,第一键的值小于第一请求的键的值,并且所述控制器还被配置为从多个键中确定第二键,第二键具有最接近且大于第一键的值的值,并且维护第一键和第二键之间的键值范围的范围锁。8.如前述权利要求中任一项所述的数据库管理系统,其中,所述第一锁是共享锁。9.如权利要求1至7中任一项所述的数据库管理系统,其中,所述第一锁是独占锁。10.如前述权利要求中任一项所述的数据库管理系统,其中,所述控制器被配置为接收用于访...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。