[发明专利]Key-Value型单写多读锁池软件模块及其运行方法有效

专利信息
申请号: 201210150721.1 申请日: 2012-05-15
公开(公告)号: CN102681892A 公开(公告)日: 2012-09-19
发明(设计)人: 肖舸;葛新;李伟伟;杨东;王毅;王文庆 申请(专利权)人: 西安热工研究院有限公司
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 西安智大知识产权代理事务所 61215 代理人: 贾玉健
地址: 710032 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: key value 型单写多读锁池 软件 模块 及其 运行 方法
【说明书】:

技术领域

发明涉及并行计算领域中锁池软件模块和方法,具体涉及一种Key-Value型单写多读锁池软件模块及其运行方法。

背景技术

锁是多任务操作系统提供的一种重要资源,常见的有临界区、信号量、互斥量等多种形式,其核心功能是在并行程序设计领域,当两个或多个线程面临同时访问某一个资源(内存、Socket、IO等)的可能时,临时性宣告该资源在某个时刻被某个线程占用(Lock),防止其他线程的冲突性访问,以保证每个访问动作均在自己需要的权限内得以完整地完成,避免程序bug。

在大型服务器开发领域,由于要应对大量客户端的高速、大并发、海量数据访问,内部数据模块、通信模块等资源的访问和变动非常密集,需要高效和海量的锁资源支持,才能保证数据访问的完整性和安全性,以及保证资源访问的效率。

传统的锁操作程序设计模式一般分为两种:

1、定义一把“大锁”,保护一个完整的数据结构,比如一把锁保护一棵树型数据结构、一个队列、一个堆栈中的所有数据,所有对该数据结构的访问均需通过这一把锁实现,这对操作系统资源占用很少,但会导致大并发访问时锁碰撞过于密集,访问效率很低。

2、定义很多把“小锁”,保护数据结构中细分的、很小范围的子数据,比如一把锁仅仅保护一个树形数据结构中的一片“叶子”,程序中锁与数据资源按照1:1数量配置,这可以降低锁碰撞以及提升访问效率。但由于锁本身也是操作系统的资源,在海量数据的组织中,系统资源消耗会很大,会导致系统因资源不足而崩溃,或程序被迫设置上限,无法保护太多的资源。

上述两种方案都不完美,要么性能低下,要么资源浪费严重,二者很难折中。目前软件业界缺乏一种高效率的、低系统资源占用的,针对海量数据的锁保护手段。这严重制约了高并发海量数据应用服务器的性能和规模。

另外,传统操作系统提供的锁资源,其加锁方法比较“粗犷”,仅有加锁(Lock)和解锁(Unlock)两种操作方式,并不细分外部应用具体的数据访问行为。这导致每次加锁均是无条件“排他”的,无法并发,性能不高。

但在实际工作中,数据访问通常有“读”、“写”两种需求,研究表明,在“写”方式下,确实需要“排他”的锁保护,防止bug,而“读”方式下,由于被保护的数据资源并未被修改,可以允许多重“读”并发,即允许多个线程同时读某个资源,以提升程序的并发效率。

这需要单写多读锁逻辑,即“细分”的应用层锁操作行为,明确区别“写动作”和“读动作”,加以不同的处理,实现“唯一写”和“并发读”的锁保护能力。

目前,大多数多任务操作系统并未提供“单写多读锁”资源,软件业界也没有统一的标准,需要程序员在开发工作中自行实现。但由于单写多读锁逻辑开发难度较大,业界程序员水平又参差不齐,实做中经常出现问题,影响了程序开发工作效率。

软件业界目前比较缺乏较为通用的,具有较高抽象性的、提供友好的应用程序开发接口API,可以跨平台、跨语言调用的单写多读锁资源解决方案。

发明内容

为了克服上述现有技术存在的缺点,本发明的目的在于提供一种Key-Value型单写多读锁池软件模块及其运行方法,能够使用很少的操作系统资源(物理锁资源、内存等),提供海量“单写多读逻辑锁”资源供应用层使用,以实现高效的“小锁”应用模型,满足软件业界的在多任务环境下的高性能开发需求。

为了达到上述目的,本发明所采用的技术方案是:

一种Key-Value型单写多读锁池软件模块,包括相互耦合,联动工作的如下子模块:

应用程序调用接口:定义本模块的操作方法,供其他计算机编程语言调用,实现功能输出;

单写多读操作逻辑层:提供单写多读算法逻辑,为实现的每一把逻辑锁提供单写多读操作特性;

Hash管理模块:接受任意数据类型的Key键值,快速索引查找对应的单写多读逻辑锁,实现多个单写多读逻辑锁的精确访问;

动态内存池模块:实现内部单写多读逻辑锁数据的动态申请和释放;

系统物理锁资源:向操作系统申请的锁资源,本模块程序运行时调用其加解锁方法,提供本模块自身功能的多线程安全保护。

所述锁池软件模块提供海量单写多读逻辑锁供其他应用程序开发使用,所述单写多读逻辑锁包含两个特征数据,一个写标志位和一个读计数器,可以存储、描述“唯一写”和“多重读”的工作状态值,其核心数据属于内存数据,可以在Hash管理模块中被索引管理,也可以被动态内存池模块动态申请和释放,其逻辑定义如下:

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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