[发明专利]一种树形数据的加解锁方法有效

专利信息
申请号: 202010347309.3 申请日: 2020-04-28
公开(公告)号: CN111597193B 公开(公告)日: 2023-09-26
发明(设计)人: 石巍;李丽锋;曾舒新;何广柏;姜有强;朱英军;王哲 申请(专利权)人: 广东亿迅科技有限公司
主分类号: G06F16/23 分类号: G06F16/23;G06F16/22
代理公司: 暂无信息 代理人: 暂无信息
地址: 510635 广东省广州*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 树形 数据 解锁 方法
【说明书】:

发明公开了一种树形数据的加锁方法,首先提取欲加锁的子树组的标识树并计算出局部标识Map,然后对局部标识Map中的每个节点的加锁标记计数值,取同一节点在整棵树的全局标识Map中的加锁标记计数值进行对比,以判断此次加锁是否允许,若允许加锁,将局部标识Map叠加到全局标识Map中,并保存局部标识Map,加锁成功;若不允许加锁,则按失败策略等待重试或放弃。同时本发明还公开了对应的解锁方法,将对子树组加锁时保存的局部标识Map从全局标识Map中去掉即完成解锁。通过本发明能够确保数据一致性,简化业务逻辑,增进数据并发处理能力,提升系统性能。

技术领域

本发明涉及数据处理技术领域,尤其涉及一种树形数据的加解锁方法。

背景技术

随着互联网时代的发展,业务的复杂度越来越高,IT系统倾向于组件化、模块化、微服务化,即是对业务拆分成相对独立的底层组件,再在高层加以综合而形成整体业务。体现在业务的数据上,就是业务的一个实例的数据保存为一个树形结构,每个底层业务组件对应的数据是树中的一棵子树,并且这种拆分-组合的关系可以嵌套。

在业务处理过程中,有的业务场景只涉及单个底层组件,这样业务的数据改变只会涉及该组件对应的子树,而不影响树中的其他数据。如果在同一个业务实例中,两个业务场景涉及两个不同组件,它们修改的数据是同一棵树上的两个不同子树,那么它们就可以同时执行。相反,如果两个业务涉及到相同的组件,它们就很可能修改同一组数据,而不能同时执行。如果它们同时执行,就很可能造成数据被覆盖、数据完整性破坏等访问冲突,在这种情况下,就需要对业务将要访问的数据进行加锁,以保证业务逻辑和数据的正确。

例如,某个业务由组件X和Y组成,而整个业务的数据结构如附图1所示。其中组件X的数据对应于B1子树,而组件Y的数据对应于B2子树。如果一个业务只涉及到X组件,那么它就只需要修改B1子树的数据,而不需要修改B2子树的数据。涉及Y组件的业务同理。这样,一个只涉及X组件的业务与另一个只涉及Y组件的业务就可以同时执行,而两个涉及X组件的业务就不能同时执行,或者一个涉及X组件的业务与另一个同时涉及X和Y组件的业务也不能同时执行。这样就可以实现访问数据有重叠的业务互斥,访问数据无重叠的业务不互斥的效果。

在并发访问和处理树结构时,通常需要采用加锁的方式避免发生冲突和保证数据一致性,现有技术有两种:

1.对整棵树进行加锁,即每棵树对应一个锁,在业务访问一棵树前,需要先对该树对应的锁进行加锁,处理完该请求后对该锁进行解锁,其他业务才能获取该锁,从而访问这棵树。在这种加锁方式中,一棵树同时只能被一个业务访问,即使是无关的业务也无法同时处理,对并发性能影响很大。例如:两个业务各自需要访问同一棵树的D2和E5节点。为了确保数据的正确性,需要对访问的数据加锁,但在对整棵树加锁的方式中,两个业务都需要获取到整棵树的锁后才能处理数据,从而只能依次执行,而不能同时执行。可见,该方式需要对整棵树加锁,一棵树同时只能有一个业务处理,即使是多个业务处理的数据不同也是如此,在业务高并发时会极大的影响性能,无法满足业务的需要。

2.对业务需要修改的每一个数据节点都加锁。一棵树中每个数据节点都对应一个锁,业务处理前需要对自己本次处理的所有数据节点都获取到锁,才能开始处理。例如:一个业务需要访问一棵树的D2子树,它就必须对D2、E1、E2、E3、F1、F2等6个节点加锁后才能开始处理。其他涉及这几个节点的业务必须等该节点处理完成后释放锁才能开始,而不涉及这些节点的业务可以与该业务同时执行。这种方式可以避免第1种方式无法并发的问题,但要求业务对树中每个节点的数据访问进行细致的控制,增加了业务复杂度。此外还要求业务预先知道自己将要处理哪些节点,而这在某些场景下是不可能的。如果遗漏了对必要节点的锁定,而有其他业务同步修改数据,会造成业务错误。

发明内容

本发明的目的是为了克服现有技术的缺陷,提供一种树形数据的加解锁方法,尤其是一种对树形数据的多个子树作为整体进行加解锁的方法,通过本发明能够确保数据的一致性,简化业务逻辑,增进数据并发处理能力,提升系统性能。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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