(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211092823.2
(22)申请日 2022.09.08
(71)申请人 北京奥星贝斯科技有限公司
地址 100020 北京市朝阳区望京东园四区
13号楼-4至 33层101内23层201室
(72)发明人 孔繁宇 崔晓飞 韩富晟 曹庭
(74)专利代理 机构 北京君慧知识产权代理事务
所(普通合伙) 11716
专利代理师 肖鹏
(51)Int.Cl.
G06F 16/23(2019.01)
G06F 16/2458(2019.01)
(54)发明名称
一种分布式表 锁操作方法、 装置以及设备
(57)摘要
本说明书实施例公开了一种分布式表锁操
作方法、 装置以及设备。 所述分布式表锁包括对
应于数据表的表级锁, 以及分别对应于所述数据
表所分布的不同分区的多个分区级锁, 方案包
括: 响应于针对所述数据表的当前操作, 判断所
述当前操作是DDL操作, 还是DML操作; 若所述当
前操作是所述DDL操作, 则对所述数据表上对应
的表级锁; 若所述 当前操作是所述DML操作, 则确
定所述DML操作在所述数据表中所针对的分区,
作为目标分区, 为所述目标分区上对应的分区级
锁。
权利要求书3页 说明书12页 附图3页
CN 115203226 A
2022.10.18
CN 115203226 A
1.一种分布式表锁操作方法, 所述分布式表锁包括对应于数据表的表级锁, 以及分别
对应于所述数据表所分布的不同分区的多个分区级锁, 所述方法包括:
响应于针对所述数据表的当前操作, 判断所述当前操作是数据定义语言DDL操作, 还是
数据操纵语言DML操作;
若所述当前操作是 所述DDL操作, 则对所述数据表上对应的表级锁;
若所述当前操作是所述DML操作, 则确定所述DML操作在所述数据表中所针对 的分区,
作为目标分区, 为所述目标分区上对应的分区级锁。
2.如权利要求1所述的方法, 所述表级锁用于使其对应的DDL操作与针对同一个数据表
的其他DDL操作互斥;
所述若所述当前操作是所述DDL操作, 则对所述数据表上对应的表级锁之后, 所述方法
还包括:
对所述数据表 的分区分别上对应的分区级锁, 以使所述对应的DDL操作也与针对所述
分区的DML操作互斥。
3.如权利要求1所述的方法, 分布式系统中的指定 机器上部署有表级锁管理器;
所述对所述数据表上对应的表级锁, 具体包括:
响应于所述当前操作, 访问所述指定 机器;
通过对所述指定 机器的访问, 指示所述表级锁管理器对所述数据表上对应的表级锁。
4.如权利要求2或3所述的方法, 所述数据表的各分区在分布式系统中分别所处 的分区
机器上部署有对应的分区级锁管理器;
所述对所述数据表的各分区分别上对应的分区级锁, 具体包括:
响应于所述当前操作, 分别访问各 所述分区机器;
通过对各所述分区机器的访问, 指示各所述分区级锁管理器对所述数据表上对应的分
区级锁。
5.如权利要求 4所述的方法, 所述分布式系统中的指定 机器上部署有表级锁管理器;
所述响应于所述当前操作, 分别访问各 所述分区机器, 具体包括:
响应于所述当前操作, 检测所述表级锁管理器是否已经对所述数据表上表级锁完毕;
若是, 则分别访问各 所述分区机器上的所述分区级锁管理器, 以便上对应的分区级锁。
6.如权利要求5所述的方法, 还 包括:
确定在所述分布式系统中增加了用于存储所述数据表的一个或者多个分区的扩展机
器;
在所述扩展机器上部署对应于所述分区的分区级锁管理器;
在满足预定条件时, 直接指示所述扩展机器上部署的所述分区级锁管理器, 为所述扩
展机器上 的所述分区上对应的分区级锁; 或者, 将所述扩展机器上部署的所述分区级锁管
理器, 与所述表级锁管理器进 行关联, 以使能够通过所述表级锁管理器, 指示所述分区级锁
管理器为所述扩展机器上的所述分区上对应的分区级锁。
7.如权利要求2所述的方法, 所述对所述数据表的分区分别上对应的分区级锁, 具体包
括:
确定所述数据表的两个分区之间是否存在数据重复部分;
若是, 则判断所述两个分区之间是否存在联动关联关系;权 利 要 求 书 1/3 页
2
CN 115203226 A
2若存在所述联动关联关系, 则对所述两个分区中在所述联动关联关系中处于主导地位
的分区上对应的分区级锁, 而不对另一个分区上锁。
8.如权利要求7所述的方法, 所述对所述两个分区中在所述联动关联关系中处于主导
地位的分区上对应的分区级锁, 而对另一个分区不上对应的分区级锁之后, 所述方法还包
括:
确定所述主导 地位是否要切换至所述另一个分区;
若是, 则将至少部分所述数据重复部分确定为一个子分区, 对所述子分区上对应的子
分区级锁, 而不对所述另一个分区中所述子分区以外的部分上锁。
9.如权利要求8所述的方法, 所述确定所述主导地位是否要切换至所述另一个分区之
前, 所述方法还 包括:
检测针对所述数据重复部分的所述DML操作的频度是否超过设定阈值;
若是, 则主动将所述主导 地位切换至所述另一个分区。
10.如权利要求1或2所述的方法, 所述DDL操作用于修改所述数据表 的属性, 或者为所
述数据表创建索引;
所述DML操作用于对所述数据表中的数据进行修改。
11.一种分布式表锁操作装置, 所述分布式表锁包括对应于数据表的表级锁, 以及分别
对应于所述数据表所分布的不同分区的多个分区级锁, 所述装置包括:
操作判断模块, 响应于针对所述数据表的当前操作, 判断所述当前操作是DDL操作, 还
是DML操作;
表级上锁模块, 若所述当前操作是 所述DDL操作, 则对所述数据表上对应的表级锁;
分区级上锁模块, 若所述当前操作是所述DML操作, 则确定所述DML操作在所述数据表
中所针对的分区, 作为目标分区, 为所述目标分区上对应的分区级锁。
12.如权利要求11所述的装置, 所述表级锁用于使其对应的DDL操作与针对同一个数据
表的其他DDL操作互斥;
若所述当前操作是所述DDL操作, 则对所述数据表上对应的表级锁之后, 所述分区级上
锁模块, 对所述数据 表的分区分别上对应的分区级锁, 以使 所述对应的DDL操作也与针对所
述分区的DML操作互斥。
13.如权利要求1 1所述的装置, 分布式系统中的指定 机器上部署有表级锁管理器;
所述表级上锁模块, 响应于所述当前操作, 访问所述指定 机器;
通过对所述指定 机器的访问, 指示所述表级锁管理器对所述数据表上对应的表级锁。
14.如权利要求12或13所述的装置, 所述数据表的各分区在分布式系统中分别所处的
分区机器上部署有对应的分区级锁管理器;
所述表级上锁模块, 响应于所述当前操作, 分别访问各 所述分区机器;
通过对各所述分区机器的访问, 指示各所述分区级锁管理器对所述数据表上对应的分
区级锁。
15.如权利要求14所述的装置, 所述分布式系统中的指定 机器上部署有表级锁管理器;
所述表级上锁模块, 响应于所述当前操作, 检测所述表级锁管理器是否已经对所述数
据表上表级锁完毕;
若是, 则分别访问各 所述分区机器上的所述分区级锁管理器, 以便上对应的分区级锁。权 利 要 求 书 2/3 页
3
CN 115203226 A
3
专利 一种分布式表锁操作方法、装置以及设备
文档预览
中文文档
19 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共19页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:38:27上传分享