[发明专利]一种树形数据的加解锁方法有效
申请号: | 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种方式无法并发的问题,但要求业务对树中每个节点的数据访问进行细致的控制,增加了业务复杂度。此外还要求业务预先知道自己将要处理哪些节点,而这在某些场景下是不可能的。如果遗漏了对必要节点的锁定,而有其他业务同步修改数据,会造成业务错误。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种树形数据的加解锁方法,尤其是一种对树形数据的多个子树作为整体进行加解锁的方法,通过本发明能够确保数据的一致性,简化业务逻辑,增进数据并发处理能力,提升系统性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东亿迅科技有限公司,未经广东亿迅科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010347309.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种低成本高强度水泥杆座的制备方法
- 下一篇:一种自动激光焊接设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置