全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210675621.4 (22)申请日 2022.06.15 (71)申请人 深圳市腾讯计算机系统有限公司 地址 518057 广东省深圳市南 山区高新区 科技中一路腾讯大厦3 5层 申请人 中国人民大 学 (72)发明人 卢卫 赵泓尧 杨皖晴 李婧瑶  李海翔 杜小勇 潘安群  (74)专利代理 机构 深圳市深佳知识产权代理事 务所(普通 合伙) 44285 专利代理师 王仲凯 (51)Int.Cl. G06F 16/23(2019.01) G06F 9/46(2006.01) G06F 9/50(2006.01) (54)发明名称 一种事务执 行方法以及相关装置 (57)摘要 本申请实施例提供了一种事务执行方法以 及相关装置, 用于自适应切换加锁逻辑, 从而提 升了事务在低读并发场景和 高读并发场景下的 执行效率。 包括: 响应于目标事务的执行请求, 通 过远程直接数据存储RDMA单边编程获取该目标 事务对应的数据项, 该数据项中至少包括用于指 示该数据项的读并发次数状态的第二元信息、 用 于指示加锁状态的第三元信息和用于指示数据 本身的第四元信息; 根据该数据项的读并发次数 状态确定 该加锁状态的加锁逻辑; 根据该加锁逻 辑修改该数据项的加锁状态; 响应于对该数据项 的加锁状态的修改, 执行该目标事务; 在提交该 目标事务时, 通过该RDMA单边编程释放该加锁状 态。 本申请可应用于云技术、 数据库以及大数据 技术。 权利要求书4页 说明书26页 附图14页 CN 115114311 A 2022.09.27 CN 115114311 A 1.一种事务执 行方法, 其特 征在于, 所述方法包括: 响应于目标事务的执行请求, 通过远程直接数据存储RDMA单边编程获取所述目标事务 对应的数据项, 所述数据项中至少包括用于指示读并发事务的累计数量的第一元信息、 用 于指示所述数据项的读并发次数状态的第二元信息、 用于指示加锁状态的第三元信息位和 用于指示所述数据项中的数据本身的第四元信息, 所述第二元信息为根据所述第一元信息 指示的读并发事务的累计数量确定, 所述0数据项的读并发次数状态为所述数据项的读并 发次数超出阈值或所述数据项的读并发次数未超出所述阈值, 所述加锁状态为共享读锁或 者排他写锁; 根据所述数据项的读并发次数状态确定所述第三元信息指示的加锁状态的加锁逻辑; 根据所述加锁逻辑 修改所述数据项的加锁状态; 响应于对所述数据项的加锁状态的修改, 执 行所述目标事务; 在提交所述目标事务时, 通过所述RDMA单边编程释放所述第三元信息指示的加锁状 态。 2.根据权利要求1所述的方法, 其特征在于, 所述根据所述数据项的读并发次数状态确 定所述第三元信息指示的加锁状态的加锁逻辑包括: 在所述数据项的读并发次数状态为所述数据项的读并发次数超出阈值且所述执行请 求为读操作时, 确定所述加锁逻辑 为所述数据项加共享读锁; 在所述数据项的读并发次数状态为所述数据项的读并发次数超出阈值且所述执行请 求为写操作时, 确定所述加锁逻辑 为所述数据项加排 他写锁; 在所述数据项的读并发次数状态为所述数据项的读并发次数未超出阈值 时, 确定所述 加锁逻辑 为所述数据项加排 他写锁。 3.根据权利要求2所述的方法, 其特征在于, 所述数据项还包括用于指示累计共享读锁 数量的第 五元信息、 用于指示累计释放的共享读锁数量的第六元信息, 所述根据所述加锁 逻辑修改所述数据项的加锁状态包括: 通过远程直接数据存储 的原子交换RDMA_CAS原子地修改所述第三元信息的第一取值 至第二取值进入临界区, 使得 所述数据项加共享读锁; 通过所述RDMA单边编程释放所述第三元信息指示的加锁状态包括: 通过RDMA_FAA原子地使得所述第五元信息计数加一且RDMA_CAS原子地修改所述第三 元信息的所述第二取值至所述第一取值, 使得释放所述数据项的共享读锁。 4.根据权利要求2所述的方法, 其特征在于, 所述数据项还包括用于指示累计共享读锁 数量的第 五元信息、 用于指示累计释放的共享读锁数量的第六元信息, 所述根据所述加锁 逻辑修改所述数据项的加锁状态包括: 通过RDMA_CAS原子地修改所述第三元信息的第一取值至第二取值, 使得所述数据项加 排他写锁; 通过所述RDMA单边编程释放所述第三元信息指示的加锁状态包括: 通过RDMA_CAS原子地修改所述第三元信息的所述第二取值为所述第一取值, 使得释放 所述数据项的排 他写锁。 5.根据权利要求2所述的方法, 其特征在于, 所述根据所述加 锁逻辑修改所述数据项的 加锁状态包括:权 利 要 求 书 1/4 页 2 CN 115114311 A 2通过RDMA_CAS原子地修改所述第三元信息的第一取值至第二取值, 使得所述数据项的 加排他写锁; 通过所述RDMA单边编程释放所述第三元信息指示的加锁状态包括: 通过RDMA_CAS原子地修改所述第三元信息的所述第二取值为所述第一取值, 使得释放 所述数据项的排 他写锁。 6.根据权利要求2所述的方法, 其特征在于, 根据 所述数据项的读并发次数状态确定所 述第三元信息指示的加锁状态的加锁逻辑之前, 所述方法还 包括: 通过RDMA_CAS原子地修改所述第三元信息的第一取值至第二取值进入临界区, 使得所 述数据项加共享读锁。 7.根据权利要求6所述的方法, 其特征在于, 所述数据项还包括用于指示累计共享读锁 数量的第 五元信息、 用于指示累计释放的共享读锁数量的第六元信息, 所述根据所述加锁 逻辑修改所述数据项的加锁状态包括: 通过远程直接数据读取获取与增加 RDMA_FAA原子地使得使得所述第五元信息计数加 一, 并通过RD MA_CAS原子地修改所述第三元信息的所述第二取值至所述第一取值使 得释放 所述数据项的共享读锁; 通过RDMA_CAS原子地修改所述第三元信息的所述第一取值至所述第二取值, 使得所述 数据项加排 他写锁; 通过所述RDMA单边编程释放所述第三元信息指示的加锁状态包括: 通过RDMA_CAS原子地修改所述第三元信息的所述第二取值为所述第一取值, 使得释放 所述数据项的排 他写锁。 8.根据权利要求6所述的方法, 其特征在于, 所述根据所述加 锁逻辑修改所述数据项的 加锁状态包括: 通过RDMA_FAA原子地使得使得所述第五元信息计数加一, 并通过RDMA_CAS原子地修改 所述第三元信息的所述第二取值至所述第一取值使得释放所述数据项的共享读锁; 通过RDMA_CAS原子地修改所述第三元信息的第一取值至第二取值, 使得所述数据项的 加排他写锁; 通过所述RDMA单边编程释放所述第三元信息指示的加锁状态包括: 通过RDMA_CAS原子地修改所述第三元信息的所述第二取值为所述第一取值, 释放所述 数据项的排 他写锁。 9.根据权利要求1至8中任一项所述的方法, 其特 征在于, 所述方法还 包括: 统计数据库内各个数据项的读并发次数并利用所述第一元信息计数; 遍历所述数据库内各个数据项的所述第一元信息; 在所述第一元信 息指示所述数据项的读并发事务 次数超过所述阈值 时, 确定所述第 二 元信息的值 为ture; 在所述第一元信 息指示所述数据项的读并发事务 次数未超过所述阈值 时, 确定所述第 二元信息的值 为false。 10.一种事务执 行方法, 其特 征在于, 包括: 响应于目标事务的执行请求, 通过远程直接数据存储RDMA单边编程获取所述目标事务 对应的数据项, 所述数据项中至少包括用于指示加锁状态的第一元信息、 用于指示累计共权 利 要 求 书 2/4 页 3 CN 115114311 A 3

PDF文档 专利 一种事务执行方法以及相关装置

文档预览
中文文档 45 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共45页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种事务执行方法以及相关装置 第 1 页 专利 一种事务执行方法以及相关装置 第 2 页 专利 一种事务执行方法以及相关装置 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 00:43:53上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。