【技术实现步骤摘要】
分布式数据库并发控制方法、系统、计算机设备
[0001]本申请涉及服务器领域,尤其涉及一种分布式数据库并发控制方法
、
系统
、
计算机设备
。
技术介绍
[0002]多版本控制
(MVCC)
是数据库领域经典的并发控制算法,它可以确保只读查询不需要做事务锁等待,相比基于事务锁的并发控制机制,可以大幅提升系统并发性能,特别是提升只读查询的性能
。
[0003]然而经典的多版本并发控制考虑的是单机数据库的场景,在分布式数据库的场景下,由于数据库会存在多个
shard
,且由于
shard
的数量过多导致各个
shard
之间的内容更新无法
100
%处于同步状态,因此当使用经典的
MVCC
来对数据库进行查询时,容易出现由于需要查询的数据拆分储存在各个
shard
内,且由于
shard
内部的储存内容无法同步更新导致数据库查询时容易出现由于
shard
内的查询数据更新版本不一致导致无法获取到准确到更新后的查询数据,因此如何实现在使用
MVCC
来对数据库进行并发控制从而保证查询数据的准确性,成为了一个急需解决的问题
。
[0004]申请内容
[0005]基于此,有必要针对上述问题,提出了一种能在使用
MVCC
来对数据库进行并发控制同时保证各个
shard ...
【技术保护点】
【技术特征摘要】
1.
一种分布式数据库并发控制方法,其特征在于,包括版本号分发器以及若干储存单元,所述储存单元以及所述版本号分发器分别与后台系统相连,所述方法运行在所述后台系统中,所述方法包括:获取待执行的全局事务,所述全局事务在读写数据期间会启动各个所述储存单元内的事务分支,所述事务分支用于在各个所述储存单元内运行查询语句,做数据增删改或者查询并返回对应的查询数据;向所述版本号分发器发送全局版本号请求,从而使所述版本号分发器返回与所述全局事务匹配的全局版本号,并将所述全局事务以及所述全局版本号写入所述储存单元;向所述版本号分发器发送可见版本号请求,从而使所述版本号分发器返回与所述全局事务匹配的可见版本号;判断当前所述查询语句的所述可见版本号是否大于等于写入该条数据的所述事务的全局版本号;若是,则判定所述查询语句可见,并使所述储存单元返回对应的所述查询数据
。2.
如权利要求1所述的分布式数据库并发控制方法,其特征在于,所述判断当前所述查询语句的所述可见版本号是否大于等于写入该条数据的所述事务的全局版本号的步骤之前,还包括:判断所述后台系统中的数据行相对于所述查询语句按照设定的本地
MVCC
规则判断是否可见;若否,则判断所述全局事务内是否存在预设的多版本控制状态;若是,则判断所述全局版本号是否已经在所述预设状态中设置;若否,则阻塞所述全局事务的执行,并在设置所述全局版本号之后,执行判断当前所述查询语句的所述可见版本号是否大于等于写入该条数据的所述事务的全局版本号的步骤
。3.
如权利要求1所述的分布式数据库并发控制方法,其特征在于,所述使所述储存单元返回对应的所述查询数据的步骤,具体包括:判断所有所述事务分支是否为首次执行;若是,则根据所述全局事务在所述储存单元内启动所述事务分支并执行对应的查询语句,从而使所述储存单元返回对应的所述查询数据
。4.
如权利要求1所述的分布式数据库并发控制方法,其特征在于,所述判断所有所述事务分支是否为首次执行的步骤之后,具体包括:若否,则判定所述事务分支已经运行在所述储存单元内,并根据所述事务分支在所述储存单元内执行设定的查询语句,从而使所述储存单元返回对应的所述查询数据
。5.
如权利要求4所述的分布式数据库并发控制方法,其特征在于,所述使所述版本号分发器返回与所述全局事务匹配的可见版本号的步骤,具体包括:获取与所述全局事务匹配的隔离级别,并判断所述隔离级别是否与第一设定级别一致;若是,则将所述可见版本号分别与所述全局事务内的每个所...
【专利技术属性】
技术研发人员:赵伟,赖铮,张金冬,吴夏,唐颢,刘永松,朱阅岸,
申请(专利权)人:泽拓科技深圳有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。