[发明专利]基于碰撞探测的行级锁定集合实现装置及方法有效
申请号: | 201410187950.X | 申请日: | 2014-05-06 |
公开(公告)号: | CN104008133B | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 黄亮 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/46 |
代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 魏殿绅,庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 碰撞 探测 锁定 集合 实现 装置 方法 | ||
技术领域
本发明涉及通信网传输设备与接入设备领域,具体是涉及一种基于碰撞探测的行级锁定集合实现装置及方法。
背景技术
现有的集合容器在处理对内部某条记录的并发操作场景时,如果要防止某一条记录被修改,通常是对整个集合加互斥锁,或者是加读写锁。即使是后者,也会对全集进行锁定,如果锁定时间较长,则整个集合容器整体被锁定的时间就随之延长。往往当某一行记录被锁定,进而导致全集被锁定,操作其他记录(尤其是写操作)受到影响,严重影响操作的效率。现有的另一种方法是对集合中每个对象持有一个锁,但这种情况在集合中数据量非常庞大时,会迅速耗尽操作系统中对应资源。总之,目前的集合中单条或多条记录锁定影响全局操作。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于碰撞探测的行级锁定集合实现装置及方法,采取关键数据集合+轮询探测的方式,在高并发条件下对集合进行高效访问,集合中单条或多条记录锁定不影响全局操作。
本发明提供一种基于碰撞探测的行级锁定集合实现装置,包括锁定记录关键字集合和记录集合,所述锁定记录关键字集合包括互斥锁和关键字提取函数,互斥锁是操作系统提供的常规互斥锁;关键字提取函数是将记录中的关键字抽取出来的功能函数,由定义该集合的用户自行定义;
所述锁定记录关键字集合,用于:进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;锁定记录关键字集合为有序且成员唯一的集合,具备插入相同记录时返回错误的特性,该集合由需要行锁定的记录的关键字对象组成;锁定记录关键字由用户定义;
所述记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。
在上述技术方案的基础上,所述装置对外提供的操作方式有:插入数据、删除数据、查找数据、锁定数据、解锁数据,在所述装置的上述每一项操作中,均要对行锁信息区域进行访问,以获取相应的行锁;在无法得到行锁的情况下,等待若干毫秒,重新对行锁信息区域进行访问;在得到行锁后,访问相应数据;在成功删除数据的同时,删除行锁信息。
在上述技术方案的基础上,所述装置对装置内部的记录都对应存在一个关键字条目,对于记录的增加、删除、查找过程,都需要锁定对应的关键字,同时提供锁定记录以及解锁的功能;锁定关键字时,只需在锁定记录关键字集合中插入相应数据。
本发明还提供一种利用上述装置实现的基于碰撞探测的行级锁定集合实现方法,包括以下步骤:
A、行锁的加锁:
步骤101、当向所述装置中锁定指定记录时,首先由关键字提取函数提取出关键字;
步骤102、对关键字区域加锁;
步骤103、判断加锁是否成功,如果成功,则转到步骤104;否则,转到步骤108;
步骤104、提取出关键字后,向锁定记录关键字集合插入该关键字,转到步骤105;
步骤105、对关键字区域解锁,转到步骤106;
步骤106、操作记录区域关键字对应数据,转到步骤107;
步骤107、返回成功,结束;
步骤108、判断失败次数是否小于N次,N为正整数,如果失败次数小于N次,则转到步骤109;否则,转到步骤110;
步骤109、休眠10毫秒,返回步骤102,尝试加锁;
步骤110、如果失败次数大于N次,则返回失败,结束。
在上述技术方案的基础上,步骤110之后还包括以下步骤:
B、行锁的解锁:
步骤201、当向所述装置中解锁定指定记录时,首先由记录关键字提取函数提取出关键字;
步骤202、对关键字区域加锁;
步骤203、判断加锁是否成功,如果成功,则转到步骤204;否则,转到步骤208;
步骤204、提取出关键字后,判断锁定记录关键字集合是否存在该关键字,如果存在,则转到步骤205;如果不存在,则转到步骤206;
步骤205、删除关键字区域对应的关键字,转到步骤206;
步骤206、对关键字区域解锁,转到步骤207;
步骤207、返回成功,结束;
步骤208、判断失败次数是否小于N次,N为正整数,如果失败次数小于N次,则转到步骤209;否则,转到步骤210;
步骤209、休眠10毫秒,返回步骤202;
步骤210、如果失败次数大于N次,则返回失败,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410187950.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电动车智能锁控系统及其控制方法
- 下一篇:柔性碳纳米管晶体管的制备方法