[发明专利]一种基于分布式数据库的表锁实现方法有效

专利信息
申请号: 202110214101.9 申请日: 2021-02-26
公开(公告)号: CN112835982B 公开(公告)日: 2023-03-24
发明(设计)人: 张琦;周恒;陈磊;李欣泽 申请(专利权)人: 浪潮云信息技术股份公司
主分类号: G06F16/27 分类号: G06F16/27;G06F16/2455
代理公司: 济南信达专利事务所有限公司 37100 代理人: 郗艳荣
地址: 250100 山东省济南市高*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 分布式 数据库 实现 方法
【说明书】:

发明特别涉及一种基于分布式数据库的表锁实现方法。该基于分布式数据库的表锁实现方法,当数据库中出现长事务时,通过上表锁将事务要进行读和/或写操作的table变为该事务独有,并将该事务的优先级设置为最大,以此保证该事务在与其他事务产生冲突时自身不被回滚。该基于分布式数据库的表锁实现方法,不仅能够显著降低长事务回滚的频率,而且表锁信息在各个节点均设有缓存,提高了表锁信息的获取效率。

技术领域

本发明涉及数据库技术领域,特别涉及一种基于分布式数据库的表锁实现方法。

背景技术

MySQL常用引擎有MyISAM和InnoDB,而InnoDB是mysql默认的引擎。MyISAM不支持行锁,只有表级锁,而InnoDB支持行锁和表锁。MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此用户一般不需要直接用LOCK TABLE命令给MyISAM表显式加锁。

PostgreSQL的表级锁通常是各种命令执行时自动获取的,或者通过事务中的LOCK语句显式获取;LOCK TABLE命令用于获取一个表锁,获取过程将阻塞一直到等待的锁被其他事务释放。如果使用NOWAIT关键字则如果获取不到锁,将不会等待而是直接返回,放弃执行当前指令并抛出一个错误(error)。一旦获取到锁,将一直持有锁直到事务结束(没有主动释放锁的命令,锁总是会在事务结束的时候被释放)。

但是上述两种表锁的实现方式都是基于单机数据库,在分布式数据库中这种实现方式已经不再适用。

针对数据库中长事务提交失败造成的性能浪费,本发明提出了一种基于分布式数据库的表锁实现方法。

发明内容

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于分布式数据库的表锁实现方法。

本发明是通过如下技术方案实现的:

一种基于分布式数据库的表锁实现方法,其特征在于:当数据库中出现长事务时,通过上表锁将事务要进行读和/或写操作的table(表)变为该事务独有,并将该事务的优先级设置为最大,以保证该事务在与其他事务产生冲突时自身不被回滚;

具体包括以下步骤:

步骤1:在分布式系统启动时自动创建一个系统表lock_table,用于存储表锁的相关信息;

步骤2:在分布式系统的各个节点缓存表级锁信息;

在数据库的每个节点构造一个节点级别的缓存(cache),用于将表锁信息缓存到每个节点本地,避免每次获取表锁信息时跨节点和读磁盘,造成巨大的性能损耗;

步骤3:在各个节点加入阻塞队列,用于延迟事务拿到表锁的时间,防止由于锁冲突而立刻回滚;

步骤4:实现保护机制,防止死锁;

系统设置阈时间(thresholdtime),当事务持有的锁超时时,自动解锁;

当节点宕机时,事务持有的该节点的表的锁自动解锁,阻塞事务全部回滚;

使用死锁检测算法,当多个事务发生死锁时,随机回滚其中一个事务打破死锁。

所述步骤1中,当增加/删除表锁信息时,先更新系统表lock_table,然后将更新的表锁信息通过gossip从输入节点传播至全集群每个节点,用于更新各节点的表锁缓存。

所述步骤3中,利用缓存队列保证FIFO(First Input First Output,先入先出队列),防止事务饿死;通过心跳更新队列将回滚(abort或rollback)事务及时从队列中清除。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110214101.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top