[发明专利]闩锁请求方法、闩锁授权方法、装置及终端设备有效
申请号: | 201810872377.4 | 申请日: | 2018-08-02 |
公开(公告)号: | CN109063132B | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 韩朱忠;王海龙;薛慧 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 请求 方法 授权 装置 终端设备 | ||
本发明公开了闩锁请求方法、闩锁授权方法、装置及终端设备。所述方法包括:接收对应的数据库节点发起的第一闩锁请求,所述第一闩锁请求包括所述数据库节点的待封锁对象及对应的闩封锁模式;根据所述第一闩锁请求查找所述数据库节点对应的本地控制信息,所述本地控制信息包括历史第一闩锁请求和本地闩锁授权信息;如果查找结果满足请求发送条件,则向提供闩锁授权的第一数据库发送第二闩锁请求,所述第二闩锁请求包括所述待封锁对象、所述闩封锁模式和所述数据库节点的实例标识。利用该方法能够有效地避免每次数据库节点发起第一闩锁请求均引发一次与第一数据库的信息交互,有效地减少了全局数据库间的并发冲突,提高了数据库集群的工作效率。
技术领域
本发明实施例涉及数据库技术领域,尤其涉及闩锁请求方法、闩锁授权方法、装置及终端设备。
背景技术
闩(LATCH)是数据库管理系统中一种轻量级资源锁,用于快速、短时间锁定资源,防止用户访问某个正在被修改的共享资源。
闩一般提供两种封锁模式:共享模式和独占模式,分别用S和X表示。共享模式顾名思义就是以只读方式锁定一个对象,阻止其他用户修改对象,并允许多个用户同时以共享模式封锁。一个对象一旦被以独占模式锁定后,其他用户不再允许访问此对象,修改对象之前必须先以独占模式封锁对象。多个用户同时对同一个对象进行X封锁,会产生冲突,后发起请求的用户会被阻塞,直到先请求的用户释放闩锁后被唤醒;如果多个用户分别请求S封锁和X封锁,也会产生闩锁冲突。
共享存储数据库集群允许多个数据库实例同时访问、修改同一个数据库的数据页,因此需要将闩扩展成为一种全局并发访问控制机制。一种比较直观的做法是将闩直接扩展为全局对象,指定一个实例作为控制实例,所有实例直接向控制实例发起闩锁请求。这种方式可以达到并发控制的目的,但所有闩封锁、闩锁授权、闩锁释放操作,都需要通过网络在数据库实例间进行传递,会影响数据库管理系统的整体性能。
发明内容
本发明实施例提供了闩锁请求方法、闩锁授权方法、装置及终端设备,能够有效避免每次闩封锁都引发一次数据库实例间的信息交互。
第一方面,本发明实施例提供了一种闩锁请求方法,包括:
接收对应的数据库节点发起的第一闩锁请求,所述第一闩锁请求包括所述数据库节点的待封锁对象及对应的闩封锁模式;
根据所述第一闩锁请求查找所述数据库节点对应的本地控制信息,所述本地控制信息包括历史第一闩锁请求和本地闩锁授权信息;
如果查找结果满足请求发送条件,则向提供闩锁授权的第一数据库发送第二闩锁请求,所述第二闩锁请求包括所述待封锁对象、所述闩封锁模式和所述数据库节点的实例标识。
第二方面,本发明实施例还提供了一种闩锁授权方法,包括:
接收提供闩锁请求的第二数据库发送的第二闩锁请求,所述第二闩锁请求包括所述第二数据库的待封锁对象、对应的闩封锁模式和所述第二数据库的实例标识;
根据所述第二闩锁请求查找数据库集群对应的全局控制信息,所述全局控制信息包括历史第二闩锁请求和全局闩锁授权信息;
如果查找结果满足请求授权条件,则向所述第二数据库发送所述封锁对象的闩锁授权信息,所述闩锁授权信息包括所述待封锁对象、所述闩封锁模式和所述第二数据库的实例标识。
第三方面,本发明实施例还提供了一种闩锁请求装置,包括:
请求接收模块,用于接收对应的数据库节点发起的第一闩锁请求,所述第一闩锁请求包括所述数据库节点的待封锁对象及对应的闩封锁模式;
请求查询模块,用于根据所述第一闩锁请求查找所述数据库节点对应的本地控制信息,所述本地控制信息包括历史第一闩锁请求和本地闩锁授权信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810872377.4/2.html,转载请声明来源钻瓜专利网。