基于碰撞探测的行级锁定集合实现装置及方法制造方法及图纸

技术编号:10367293 阅读:106 留言:0更新日期:2014-08-28 11:10
本发明专利技术公开了一种基于碰撞探测的行级锁定集合实现装置及方法,涉及通信网传输设备与接入设备领域,该装置包括锁定记录关键字集合和记录集合,锁定记录关键字集合包括互斥锁和关键字提取函数,锁定记录关键字集合用于进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。本发明专利技术采取关键数据集合+轮询探测的方式,在高并发条件下对集合进行高效访问,集合中单条或多条记录锁定不影响全局操作。

【技术实现步骤摘要】

本专利技术涉及通信网传输设备与接入设备领域,具体是涉及一种。
技术介绍
现有的集合容器在处理对内部某条记录的并发操作场景时,如果要防止某一条记录被修改,通常是对整个集合加互斥锁,或者是加读写锁。即使是后者,也会对全集进行锁定,如果锁定时间较长,则整个集合容器整体被锁定的时间就随之延长。往往当某一行记录被锁定,进而导致全集被锁定,操作其他记录(尤其是写操作)受到影响,严重影响操作的效率。现有的另一种方法是对集合中每个对象持有一个锁,但这种情况在集合中数据量非常庞大时,会迅速耗尽操作系统中对应资源。总之,目前的集合中单条或多条记录锁定影响全局操作。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种,采取关键数据集合+轮询探测的方式,在高并发条件下对集合进行高效访问,集合中单条或多条记录锁定不影响全局操作。本专利技术提供一种基于碰撞探测的行级锁定集合实现装置,包括锁定记录关键字集合和记录集合,所述锁定记录关键字集合包括互斥锁和关键字提取函数,互斥锁是操作系统提供的常规互斥锁;关键字提取函数是将记录中的关键字抽取出来的功能函数,由定义该集合的用户自行定义;所述锁定记录关键字集合,用于:进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;锁定记录关键字集合为有序且成员唯一的集合,具备插入相同记录时返回错误的特性,该集合由需要行锁定的记录的关键字对象组成;锁定记录关键字由用户定义;所述记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。在上述技术方案的基础上,所述装置对外提供的操作方式有:插入数据、删除数据、查找数据、锁定数据、解锁数据,在所述装置的上述每一项操作中,均要对行锁信息区域进行访问,以获取相应的行锁;在无法得到行锁的情况下,等待若干毫秒,重新对行锁信息区域进行访问;在得到行锁后,访问相应数据;在成功删除数据的同时,删除行锁信息。在上述技术方案的基础上,所述装置对装置内部的记录都对应存在一个关键字条目,对于记录的增加、删除、查找过程,都需要锁定对应的关键字,同时提供锁定记录以及解锁的功能;锁定关键字时,只需在锁定记录关键字集合中插入相应数据。本专利技术还提供一种利用上述装置实现的基于碰撞探测的行级锁定集合实现方法,包括以下步骤: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次,则返回失败,结束。在上述技术方案的基础上,步骤210之后还包括以下步骤:对于容器的所有操作:插入记录、删除记录、查询记录,都是先获取行锁,然后再锁定记录区域,对记录区域进行操作,具体步骤如下:步骤301:发起操作;步骤302:对操作的记录在容器中加行锁;步骤303:判断加锁是否成功,如果加锁成功,则转到步骤304;否则,转到步骤309 ;步骤304:对操作的记录区域加锁,转到步骤305 ;步骤305:对容器中的记录区域执行请求的操作,转到步骤306 ;步骤306:对操作的记录区域解锁,转到步骤307 ;步骤307:解除行锁,转到步骤308 ;步骤308:返回成功,结束;步骤309:返回失败,结束。与现有技术相比,本专利技术的优点如下:本专利技术采取关键数据集合+轮询探测的方式,在高并发条件下对集合进行高效访问,集合中单条或多条记录锁定不影响全局操作。【附图说明】图1是本专利技术实施例中基于碰撞探测的行级锁定集合实现装置的结构框图。图2为本专利技术实施例中行锁的加锁的流程图。图3为本专利技术实施例中行锁的解锁的流程图。图4为本专利技术实施例中容器记录操作与行锁关系的示意图。【具体实施方式】下面结合附图及具体实施例对本专利技术作进一步的详细描述。参见图1所示,本专利技术实施例提供一种基于碰撞探测的行级锁定集合实现装置,包括锁定记录关键字集合和记录集合,锁定记录关键字集合包括互斥锁和关键字提取函数,互斥锁是操作系统提供的常规的互斥锁;关键字提取函数是将记录中的关键字抽取出来的功能函数,由定义该集合的用户自行定义,具备通用性;锁定记录关键字集合,用于:进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;锁定记录关键字集合为有序且成员唯一的集合,具备插入相同记录时返回错误的特性,该集合由需要行锁定的记录的关键字对象组成;锁定记录关键字由用户定义,必须实现关键字之间的小于比较方法;记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。本装置对外提供的操作方式有:插入数据、删除数据、查找数据、锁定数据、解锁数据。在本装置的上述每一项操作中,对行锁信息区域都要进行访问,以获取相应的行锁;在无法得到行锁的情况下,等待若干毫秒,重新对行锁信息区域进行访问;在得到行锁后,访问相应数据。在成功删除数据的同时,删除行锁信息。本装置对装置内部的记录都对应存在一个关键字条目,对于记录的增力口、删除、查找过程都需要锁定对应的关键字,同时提供锁定记录以及解锁的功能。这样保证外部需要持有保持不变的数据,只需要通过持有对应关键字,就能够保证相应数据被锁定,不会被修改、删除、读取,保证数据的一致性。锁定关键字时,只需要在锁定记录关键字集合中插入相应数据,而不需要额外的系统资源,能够保证提供无限制数量的行锁,同时保证不同关键字记录的操作互不影响。本专利技术实施例提供一种利用上述装置实现的基于碰撞探测的行级锁定集合实现方法,包括以下步骤:A、参见图2所示,行锁的加锁:步骤101、当向本装置中锁定指定记录时本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410187950.html" title="基于碰撞探测的行级锁定集合实现装置及方法原文来自X技术">基于碰撞探测的行级锁定集合实现装置及方法</a>

【技术保护点】
一种基于碰撞探测的行级锁定集合实现装置,其特征在于:包括锁定记录关键字集合和记录集合,所述锁定记录关键字集合包括互斥锁和关键字提取函数,互斥锁是操作系统提供的常规互斥锁;关键字提取函数是将记录中的关键字抽取出来的功能函数,由定义该集合的用户自行定义;所述锁定记录关键字集合,用于:进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;锁定记录关键字集合为有序且成员唯一的集合,具备插入相同记录时返回错误的特性,该集合由需要行锁定的记录的关键字对象组成;锁定记录关键字由用户定义;所述记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。

【技术特征摘要】
1.一种基于碰撞探测的行级锁定集合实现装置,其特征在于:包括锁定记录关键字集合和记录集合,所述锁定记录关键字集合包括互斥锁和关键字提取函数,互斥锁是操作系统提供的常规互斥锁;关键字提取函数是将记录中的关键字抽取出来的功能函数,由定义该集合的用户自行定义; 所述锁定记录关键字集合,用于:进行行级锁定时,依据记录关键字提取函数从需要锁定的记录中抽出关键字,将关键字插入到锁定记录关键字集合中;锁定记录关键字集合为有序且成员唯一的集合,具备插入相同记录时返回错误的特性,该集合由需要行锁定的记录的关键字对象组成;锁定记录关键字由用户定义; 所述记录集合是容纳所有记录的唯一性关联容器,容器中的对象类型为记录类型,容器的唯一性、排序依据为记录中的关键字,而关键字由关键字提取函数在记录中提取。2.如权利要求1所述的基于碰撞探测的行级锁定集合实现装置,其特征在于:所述装置对外提供的 操作方式有:插入数据、删除数据、查找数据、锁定数据、解锁数据,在所述装置的上述每一项操作中,均要对行锁信息区域进行访问,以获取相应的行锁;在无法得到行锁的情况下,等待若干毫秒,重新对行锁信息区域进行访问;在得到行锁后,访问相应数据;在成功删除数据的同时,删除行锁信息。3.如权利要求1或2所述的基于碰撞探测的行级锁定集合实现装置,其特征在于:所述装置对装置内部的记录都对应存在一个关键字条目,对于记录的增加、删除、查找过程,都需要锁定对应的关键字,同时提供锁定记录以及解锁的功能;锁定关键字时,只需在锁定记录关键字集合中插入相应数据。4.利用权利要求1至3中任一项所述装置实现的基于碰撞探测的行级锁定集合实现方法,其特征在于,包括以下步骤: A、行锁的加锁: 步骤101、当向所述装置中锁定指定记录时,首先由关键字提取函数提取出关键字; 步骤102、对关键字区域加锁; 步骤103、判断加锁是否成功,如果成功,则转到步骤104 ;否则,转到步骤108 ; 步骤104、提取出关键字后,向锁定记录关键字集合插入该关键字,转到步骤105 ; 步骤105、对关键字区域解锁,转到步骤106 ; 步骤106、操作记录...

【专利技术属性】
技术研发人员:黄亮
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

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

1