[发明专利]一种多主云数据库场景下基于分区的并发控制方法有效
| 申请号: | 202110685426.5 | 申请日: | 2021-06-21 |
| 公开(公告)号: | CN113535742B | 公开(公告)日: | 2022-10-28 |
| 发明(设计)人: | 刘文欣;蔡鹏 | 申请(专利权)人: | 华东师范大学 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2455 |
| 代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
| 地址: | 200241 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多主云 数据库 场景 基于 分区 并发 控制 方法 | ||
本发明公开了一种多主云数据库场景下基于分区的并发控制方法,其特点在于采用事务序号分配以及跨分区并发控制算法,在事务的执行阶段可根据事务访问的数据范围分区执行事务,各分区内有独立的事务日志记录,将事务类型划分为单分区事务和跨分区事务,在两种类型的事务之间引入跨分区并发控制算法,结合事务序号的分配维护多个写节点的场景下数据的一致性。本发明与现有技术相比具有提高系统整体性能和多主场景下系统的整体吞吐量,有效解决了多主场景下实现数据库写性能的扩展并维护多个计算节点间数据的一致性,降低维护全局日志的开销,并在动态负载时可以有效的调整分区策略。
技术领域
本发明涉及云数据库的乐观并发控制技术领域,尤其是一种混合工作负载下的多主云数据库场景下基于分区的并发控制方法。
背景技术
计算存储分离架构是大多商业云数据库的解决方案,在此架构下数据库分为存储层和计算层两个部分,多个存储节点共同组成一个共享存储层为计算层提供可靠的持久化存储服务。计算层则由多个计算节点组成,每个计算节点运行一个单独的数据库进程。计算节点缓存一部分数据用于服务用户的读写请求,当缓存无法命中时计算节点会遵循替换策略将需要的数据从存储层读入缓存。
目前,大多云数据库的计算节点仅支持一写多读的架构,即计算层只存在一个计算节点拥有数据的读写权限,其余计算节点都仅拥有读权限。为实现集群中写节点的扩展,数据库领域曾尝试利用锁机制实现同一时间仅有一个节点拥有数据的写权限并通过网络传递数据页的方法实现多主,之后提出基于日志的冲突检测或是确定性数据库的解决方法。另一方面,为提高系统吞吐量,现存在部分系统选择将数据库进行分区,因此引入了跨分区事务这一问题,导致需要在满足事务ACID特性与限制事务仅能够访问一个分区这两个条件中取舍。对于存储计算分离的架构,实现多个写节点的一大难点在于各写节点缓存中数据的一致性维护。
如上所述,数据库读取数据会先从缓存读取,同时写入缓存的新版本数据也不会立即持久化到存储层,这样的机制便导致对于某个数据各写节点中缓存的版本并不相同的情况出现。为解决这种情况,现在提出了一种基于全局事务日志进行冲突检测的方法,通过为每个事务分配唯一的全局事务号,并以此事务号作为事务的执行顺序,以维护事务的可串行化调度,根据事务调度顺序进行冲突检测,并更新各节点本地缓存。但这样的解决方法下,随着写节点数量的增加,事务数量增长导致全局日志规模急剧上升,在每个写节点上依序检查每条事务无疑会产生较多不必要的网络及计算存储资源的消耗,给多主场景下维护唯一的全局事务日志带来了很大的影响。
发明内容
本发明的目的是针对现有技术的不足而提出的一种多主云数据库场景下基于分区的并发控制方法,采用单分区事务和跨分区事务的分区设计,将事务访问的数据范围分区执行事务,各分区内有独立的事务验证器以及日志记录,并维护分区独立的日志记录,同时设计事务序号作为事务排序的依据,各单分区事务间无数据冲突因此可并行执行,在跨分区事务与单分区事务间通过并发控制算法维护事务的可串行化调度,实现多主场下数据库写性能的扩展并维护多个计算节点间数据的一致性,有效的降低维护全局日志的开销,并在动态负载时可以有效的调整分区策略,通过分批次收集事务读写数据信息以针对动态负载实现动态分区,避免因分区不当而导致的过多跨分区事务产生,结合事务序号的分配维护多个写节点的场景下数据的一致性,进一步提高系统整体性能和多主场景下系统的整体吞吐量,有效解决了多主场景下维护唯一的全局事务日志带来的影响。
本发明的目的是这样实现的:一种多主云数据库场景下基于分区的并发控制方法,其特点是采用动态分区方法,通过事务序号进行跨分区并发控制,所述数据访问信息的分区方法实现了根据数据访问信息动态的调整数据库分区以适应动态负载;所述通过事务序号进行跨分区并发控制实现了多主云数据库场景下事务序号的分配并以此维护可能存在冲突的事务间的串行化调度。
所述动态分区具体包括如下步骤:
步骤A1:集群初始化时将所有服务器划分至一个分区,由此构成一个单分区,所有事务都仅访问这个分区内的数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110685426.5/2.html,转载请声明来源钻瓜专利网。





