在关系数据库的主键中包括事务提交时间戳制造技术

技术编号:26180958 阅读:33 留言:0更新日期:2020-10-31 14:44
在分布式数据库中,将在第一协调器服务器和一个或多个参与者服务器处提交事务1210。第一协调器服务器被配置为接收在相应的准备时间戳处事务的每个参与者服务器已准备好的通知,该相应的准备时间戳在相应的参与者服务器获得至少一个锁的时间范围内被选择1220。第一协调器服务器计算等于或大于每个准备时间戳的用于事务的提交时间戳1230,并且限制提交时间戳使得在共享分片处共享用于一个或多个其他事务的至少一个参与者服务器的第二协调器服务器不能选择相同的提交时间戳用于任何其他事务1240。该事务在提交时间戳处被提交1250。

Include transaction commit timestamp in primary key of relational database

【技术实现步骤摘要】
【国外来华专利技术】在关系数据库的主键中包括事务提交时间戳
技术介绍
在数据库系统中,并发控制是指用于解决由于允许同时访问数据库中的数据项而引起的冲突的技术(“并发”)。并发控制确保尽管允许同时访问,但数据库的行为始终如一。多版本并发控制技术存储给定数据片的多个版本(每次写入一个),以实现更大的并发性。提供绝对时间全局概念的系统可以与分布式数据库中的多版本并发控制集成。生成的分布式数据库在语义上等效于单机数据库,因为可以跨整个数据库进行一致的读取。
技术实现思路
本公开提供了一种方法,包括:在分布式系统中的第一协调器服务器和一个或多个参与者服务器处接收提交事务的请求,从参与者服务器中的每个接收通知,所述通知包括相应的准备时间戳,该相应的准备时间戳在相应的参与者服务器获得至少一个锁的时间范围内被选择,计算等于或大于每个准备时间戳的用于事务的提交时间戳,限制提交时间戳使得在共享分片处共享用于一个或多个其他事务的至少一个参与者服务器的第二协调器服务器无法为任何其他事务选择相同的提交时间戳,以及在第一协调器服务器处和参与者服务器中的每个处在提交时间戳处提交事务。至少一个锁可以是写共享锁。提交事务的请求还可以包括突变以更新记录该事务的变更日志。可以将提交时间戳包括为变更日志的主键。变更日志的至少一部分可以被存储在参与者服务器中的一个处。提交事务的请求还可以包括突变以更新记录该事务的多个变更日志。该方法还可以包括在关系数据库中添加至少一个列以在关系数据库中将提交时间戳存储为主键。该方法还可以包括计算事务的事务ID的哈希值,以及通过事务ID的哈希值进一步限制用于事务的提交时间戳。例如,进一步限制提交时间戳可以包括:将提交时间戳的预定数量的较低比特设置为等于事务ID的哈希值。该方法还可以包括:确定第一协调器服务器接收到提交其他事务的一个或多个请求,以及计算用于在第一协调器服务器处接收到的其他事务中的每个的提交时间戳,使得提交时间戳之间的总间隔基本上被最小化。该方法还可以包括:在共享参与者服务器处确定事务ID的哈希值等于其他事务中的至少一个的事务ID的哈希值;以及,在共享参与者服务器处防止具有相同的哈希值的至少一个其他事务获取锁直到事务提交。该方法还可以包括:在一个或多个参与者服务器处确定要在参与者服务器处提交单站点事务,计算具有用于该单站点事务的预定模式的单站点提交时间戳,该预定模式是任何多站点事务都不能选择作为其提交时间戳的模式,以及在单站点提交时间戳处提交单站点事务。该方法还可以包括:在一个或多个参与者服务器处确定要在参与者服务器处提交单站点事务;计算该单站点事务的事务ID的哈希值;以及,通过单站点事务的事务ID的哈希值来限制用于单站点事务的提交时间戳。例如,限制用于单站点事务的提交时间戳可以包括:将单站点事务的提交时间戳的预定数量的较低比特设置为等于单站点事务的事务ID的哈希值。本公开还提供了一种方法,所述方法包括:在分布式系统中的协调器服务器和一个或多个参与者服务器处接收提交事务的请求,由参与者服务器中的每个在从本地选择的开始时间开始到预定上限的时间范围内获得至少一个排他锁,在协调器服务器处接收参与者服务器中的每个在该时间范围内的相应本地选择的准备时间戳处已准备好的通知,在协调器服务器处计算等于或大于准备时间戳中的每个的用于事务的提交时间戳,在协调器服务器处以及参与者服务器中的每个处在提交时间戳处提交该事务,以及在参与者服务器中的每个处释放至少一个排他锁。预定的上限可以是无穷大。提交事务的请求还可以包括突变以更新记录该事务的变更日志。该方法还可以包括在关系数据库中添加至少一个列以在关系数据库中将提交时间戳存储为主键。本公开还提供了一种系统,其包括多个服务器中的第一协调器服务器,服务器中的每个适于在分布式计算环境中彼此通信以及与客户端通信,第一协调器服务器包括一个或多个处理器,一个或多个处理器被配置为:接收提交事务的请求;接收充当事务的参与者的其他服务器中的任何一个在相应的准备时间戳处已准备好的通知,该相应的准备时间戳在相应的参与者服务器获得至少一个锁的时间范围内被选择;计算等于或大于准备时间戳中的每个的用于该事务的提交时间戳,使得在共享分片处共享用于一个或多个其他事务的参与者服务器中的至少一个的第二协调器服务器不能为任何其他事务选择相同的提交时间戳;以及在提交时间戳处提交事务。一个或多个处理器还可以被配置为计算事务的事务ID的哈希值,以及通过事务ID的哈希值进一步限制用于事务的提交时间戳。一个或多个处理器还可以被配置为确定在第一协调器服务器处接收到提交其他事务的一个或多个请求,以及计算用于其他事务中的每个的提交时间戳,使得提交时间戳之间的总间隔基本上被最小化。分布式计算环境可以包括关系数据库,其中,一个或多个处理器可以还被配置为在关系数据库中添加至少一个列以在关系数据库中将提交时间戳存储为主键。该系统可以还包括参与者服务器,该参与者服务器包括一个或多个处理器,该处理器被配置为:确定要在参与者服务器处提交单站点事务;计算具有用于单站点事务的预定模式的单站点提交时间戳,该预定模式是任何多站点事务都不能选择作为其提交时间戳的模式;以及在单站点提交时间戳处提交单站点事务。附图说明图1是图示根据本公开的方面的示例系统的框图。图2是图示根据本公开的方面的数据库的分布的示意图。图3是图示根据本公开的方面的分布式数据库中的服务器之间的层级关系的框图。图4是图示根据本公开的方面的示例系统的框图。图5是图示根据本公开的方面的示例系统的框图。图6是图示根据本公开的方面的示例系统的框图。图7是图示根据本公开的方面的示例系统的框图。图8是图示根据本公开的方面的示例系统的框图。图9是图示根据本公开的方面的示例系统的框图。图10是图示根据本公开的方面的示例系统的框图。图11是图示根据本公开的方面的示例系统的示意图。图12是图示根据本公开的方面的示例方法的流程图。具体实施方式该技术通常涉及确定提交时间戳并且将提交时间戳提供给分布式数据库的用户的方法。例如,用户可以使用提交时间戳来查看在各个时间点处的数据库的快照,或者构建事务日志用于对数据库所做的变更。为了向用户提供有意义的提交时间戳,同一数据项的每个事务必须对应于唯一的提交时间戳。这样,用户可以使用这些提交时间戳在不同的特定时间戳处读取数据的不同版本,或者查看对数据项所做的所有变更。此外,提供了确定有意义的提交时间戳以确保不损害数据库的吞吐量的有效方法。在分布式数据库中,将在第一协调器服务器和一个或多个参与者服务器处提交事务。第一协调器服务器被配置为接收通知:事务的每个参与者服务器是在相应准备时间戳处准备的,该相应准备时间戳是在相应参与者服务器获得至少一个锁的时间范围内选择的。第一协调器服务器计算等于或大于每个准备时间戳的事务的提交时间戳,并限制提交时间戳,以使在共享分片处共享用于一个或多个其他事务的至少一个参与者服务器的第二协调器服务器无法为任何其他事务选择相本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n在分布式系统中的第一协调器服务器和一个或多个参与者服务器处,接收提交事务的请求;/n从所述参与者服务器中的每个接收通知,所述通知包括相应的准备时间戳,所述相应的准备时间戳是在相应的参与者服务器获得至少一个锁的时间范围内选择的;/n计算等于或大于每个所述准备时间戳的用于所述事务的提交时间戳;/n限制所述提交时间戳,使得第二协调器服务器不能为任何其他事务选择相同的提交时间戳,所述第二协调器服务器在共享分片处共享用于一个或多个其他事务的所述参与者服务器中的至少一个参与者服务器;以及/n在所述第一协调器服务器处以及每个所述参与者服务器处,在所述提交时间戳处提交所述事务。/n

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:
在分布式系统中的第一协调器服务器和一个或多个参与者服务器处,接收提交事务的请求;
从所述参与者服务器中的每个接收通知,所述通知包括相应的准备时间戳,所述相应的准备时间戳是在相应的参与者服务器获得至少一个锁的时间范围内选择的;
计算等于或大于每个所述准备时间戳的用于所述事务的提交时间戳;
限制所述提交时间戳,使得第二协调器服务器不能为任何其他事务选择相同的提交时间戳,所述第二协调器服务器在共享分片处共享用于一个或多个其他事务的所述参与者服务器中的至少一个参与者服务器;以及
在所述第一协调器服务器处以及每个所述参与者服务器处,在所述提交时间戳处提交所述事务。


2.根据权利要求1所述的方法,其中,所述至少一个锁是写共享锁。


3.根据权利要求1所述的方法,还包括:
计算所述事务的事务ID的哈希值;以及
通过所述事务ID的所述哈希值进一步限制用于所述事务的所述提交时间戳。


4.根据权利要求3所述的方法,其中,进一步限制所述提交时间戳包括:将所述提交时间戳的预定数量的较低比特设置为等于所述事务ID的所述哈希值。


5.根据权利要求1所述的方法,还包括:
确定所述第一协调器服务器接收到提交其他事务的一个或多个请求;以及
计算用于在所述第一协调器服务器处接收到的所述其他事务中的每个的提交时间戳,使得所述提交时间戳之间的总间隔基本上被最小化。


6.根据权利要求3所述的方法,还包括:
在所述共享参与者服务器处,确定所述事务ID的所述哈希值等于所述其他事务中的至少一个的事务ID的哈希值;以及
在所述共享参与者服务器处,防止具有相同哈希值的其他事务中的至少一个获取锁直到所述事务提交。


7.根据权利要求1所述的方法,还包括:
在所述参与者服务器中的一个或多个处,确定要在所述参与者服务器处提交单站点事务;
计算具有用于所述单站点事务的预定模式的单站点提交时间戳,所述预定模式是任何多站点事务都不能选择作为其提交时间戳的模式;以及
在所述单站点提交时间戳处提交所述单站点事务。


8.根据权利要求1所述的方法,还包括:
在所述参与者服务器中的一个或多个处,确定要在所述参与者服务器处提交单站点事务;以及
计算所述单站点事务的事务ID的哈希值;以及
通过所述单站点事务的所述事务ID的所述哈希值来限制用于所述单站点事务的所述提交时间戳。


9.根据权利要求8所述的方法,还包括:
其中,限制用于所述单站点事务的所述提交时间戳包括:将所述单站点事务的所述提交时间戳的预定数目的较低比特设置为等于所述单站点事务的所述事务ID的所述哈希值。


10.根据权利要求1所述的方法,
其中,提交事务的所述请求还包括突变,以用于更新记录所述事务的变更日志。


11.根据权利要求10所述的方法,
其中,所述提交时间戳作为所述变更日志的主键被包括。


12.根据权利要求10所述的方法,
其中,所述变更日志的至少一部分被存储在所述参与者服务器中的一个处。


13.根据权利要求10所述的方法,
其中,所述提交事务的请求还包括突变,以用于更新记录所述事务的多个变更日志。


14.根据权利要求1所述的方法,其中,所述分布式系统包...

【专利技术属性】
技术研发人员:塞巴斯蒂安·坎塔克布莱恩·弗兰克·库珀
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1