一种基于更新序列的分布式锁状态同步方法技术

技术编号:26762408 阅读:34 留言:0更新日期:2020-12-18 23:11
本发明专利技术涉及一种基于更新序列的分布式锁状态同步方法,其主要技术特点是:在每个从节点锁对象上设置更新序列,主节点维护各个从节点持有锁状态的记录,并在每个记录上设置更新序列;从节点向主节点发送加锁请求;主节点根据请求节点锁状态进行加锁处理,返回加锁成功消息,或者向当前持有锁的冲突节点发送放锁请求;从节点收根据从节点锁状态进行放锁处理并返回放锁成功消息;主节点检查冲突节点锁状态当前的更新序列,再次尝试加锁处理;从节点检查锁状态当前的更新序列并再次尝试加锁。本发明专利技术设计合理,能够有效地维护各个节点之间锁状态的一致性,保证了数据库服务的正常运行,防止数据库服务的中断,提高了系统运行的安全性和可靠性。

【技术实现步骤摘要】
一种基于更新序列的分布式锁状态同步方法
本专利技术属于数据库
,涉及分布式锁定同步方法,尤其是一种基于更新序列的分布式锁状态同步方法。
技术介绍
在共享存储集群环境中,每个数据库实例节点可以独立地提供服务,节点操作位于共享存储设施上的数据内容。集群中各个节点在提供服务的同时,需要对共享存储上的数据进行访问。当有多个节点同时访问同一项数据库资源时,由于并发操作的原因,可能会造成数据的不一致。通用的解决方案是,在访问某项数据库资源之前,必须要获得该项资源对应的锁。只有获得锁的事务,可以操作资源;其他想要操作同一资源的事务只能等待持有锁的事务放锁后,再尝试获得锁进行操作。在集群环境中,上述锁为分布式锁。分布式锁由分布式锁管理器统一进行管理,多个节点发起的加锁请求,需要通过主节点上的分布式锁管理器进行协调,当满足加锁条件后,会将锁分配给请求节点;否则,请求节点只能等待。当发生加锁冲突,分布式锁管理器还会请求持有锁的节点放锁。因此,从节点会向主节点请求加锁,主节点会请求从节点放锁。节点之间通过高速网络进行交互,发送加锁和放锁的请求。本文档来自技高网...

【技术保护点】
1.一种基于更新序列的分布式锁状态同步方法,其特征在于:包括以下步骤:/n步骤1、在每个从节点锁对象上设置更新序列,主节点维护各个从节点持有锁状态的记录,并在每个记录上设置更新序列;/n步骤2、从节点向主节点发送加锁请求;/n步骤3、主节点收到从节点的加锁请求后,根据请求节点锁状态进行加锁处理,返回加锁成功消息,或者向当前持有锁的冲突节点发送放锁请求;/n步骤4、从节点收到主节点的放锁请求后,根据从节点锁状态进行放锁处理并返回放锁成功消息;/n步骤5、主节点收到从节点返回的冲突节点放锁成功消息后,检查冲突节点锁状态当前的更新序列,再次尝试加锁处理;/n步骤6、从节点收到主节点的加锁成功消息后,...

【技术特征摘要】
1.一种基于更新序列的分布式锁状态同步方法,其特征在于:包括以下步骤:
步骤1、在每个从节点锁对象上设置更新序列,主节点维护各个从节点持有锁状态的记录,并在每个记录上设置更新序列;
步骤2、从节点向主节点发送加锁请求;
步骤3、主节点收到从节点的加锁请求后,根据请求节点锁状态进行加锁处理,返回加锁成功消息,或者向当前持有锁的冲突节点发送放锁请求;
步骤4、从节点收到主节点的放锁请求后,根据从节点锁状态进行放锁处理并返回放锁成功消息;
步骤5、主节点收到从节点返回的冲突节点放锁成功消息后,检查冲突节点锁状态当前的更新序列,再次尝试加锁处理;
步骤6、从节点收到主节点的加锁成功消息后,检查锁状态当前的更新序列并再次尝试加锁。


2.根据权利要求1所述的一种基于更新序列的分布式锁状态同步方法,其特征在于:所述更新序列的长度为8字节,所述更新序列的初始值为0。


3.根据权利要求1所述的一种基于更新序列的分布式锁状态同步方法,其特征在于:所述步骤2的具体处理方法为:
⑴如果从节点的锁状态为持有锁,则加锁成功;
⑵如果本节点锁状态为未持有锁,记录锁状态当前的更新序列;
⑶向主节点发送加锁请求,并等待请求返回。


4.根据权利要求1所述的一种基于更新序列的分布式锁状态同步方法,其特征在于:所述步骤3的具体处理方法为:
⑴主节点根...

【专利技术属性】
技术研发人员:刘碧楠周勇亮吴嵩蒋旭于凯马岳李彬陈振巍
申请(专利权)人:天津神舟通用数据技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1