[发明专利]一种数据读写优先平衡方法、系统、装置及存储介质有效
申请号: | 202011325771.X | 申请日: | 2020-11-23 |
公开(公告)号: | CN112416556B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 何清;王毅 | 申请(专利权)人: | 西安西热电站信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 安彦彦 |
地址: | 710054 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 读写 优先 平衡 方法 系统 装置 存储 介质 | ||
本发明公开了一种数据读写优先平衡方法、系统、装置及存储介质,方法包括:通过互斥锁为数据读写请求加锁;根据当前数据的引用计数器判断当前数据的读写优先级类型标志,包括无读写优先、读优先、写优先;根据读写优先级类型标志对应变量的引用计数器判断读写锁占用情况,包括读锁占用、写锁独占和没有任何锁占用;根据读写锁占用情况与读写锁最大允许数计数器剩余值得到数据的读写优先级类型标志;通过互斥锁为请求数据读写操作解锁。本发明的方法提升了数据读操作的并发性能,能够使得系统长期运行稳定,数据高并发访问性能优良,在服务器软件产品应用中取得了很好的经济效应。
技术领域
本发明属于服务器应用场景中的数据读写方法技术领域,特别涉及一种数据读写优先平衡方法、系统、装置及存储介质。
背景技术
当对一个允许多个线程同时并发读,但仅允许一个线程独占写的资源进行多线程安全访问保护时,一般使用读写锁来提高读的并发性能。而目前被广泛使用的读写锁无论采用哪种实现技术,这些读写锁都可以按照其读写优先级的不同而分为读优先读写锁和写优先读写锁。当所保护的资源为读并发量比较大时,适合使用写优先锁,而当所保护的资源为写并发量比较大时,适合使用读优先锁。这种选择的主要目的是避免读写锁出现读写饥饿问题,当所保护的资源为读并发量比较大时,如果使用读优先级,则会由于写操作饥饿而造成写操作死锁;而当所保护的资源为写并发量比较大时,如果使用写优先级,则会由于读操作饥饿而造成读操作死锁。而在一些服务器系统中,存在另外一种更加复杂的应用场景,有时读并发量远大于写并发量,而有时又是写并发量远大于读并发量,而且它们出现的概率和时机无法预知,在这种情况下,无论使用写优先锁还是读优先锁,最终都可能会不可预期的出现服务进程死锁的情况。
目前,针对读写并发不确定,有时读并发量远大于写并发量,而有时又是写并发量远大于读并发量,而且它们出现的概率和时机无法预知的服务器应用场景中,一般使用互斥锁来提供资源并发线程安全访问,从而有效避免因为读写锁发生读写饥饿而导致服务进程死锁的情况。
但互斥锁因为对所有的读写操作都是互斥的,在读并发量高时,无法充分利用读操作可并发性来提高系统的读性能,对于高并发的服务器系统来读,将会大大降低系统的读操作并发性能。
发明内容
为解决现有技术中系统的读操作并发性能降低的问题,本发明提供了一种数据读写优先平衡方法、系统、装置及存储介质,本发明的方法读操作并发性能提升,能够使得系统长期运行稳定,数据高并发访问性能优良,取得了很好的经济效应。
为实现上述目的,本发明采用以下技术手段:
一种数据读写优先平衡方法,包括:
通过互斥锁为数据读写的优先级类型标志变量、计数器变量和读/写条件锁并发安全访问加锁;
根据数据的读写引用计数器判断数据的读写优先级类型标志,包括无读写优先、读优先、写优先;
根据数据的读写引用计数器判断数据的读写占用情况,包括读锁占用、写锁独占和没有任何锁占用;
根据数据的读写等待情况与最大允许数计数器剩余值得到数据的读写优先级类型标志;
通过互斥锁为请求数据读写操作解锁。
作为本发明的进一步改进,所述请求数据读写操作包括申请读锁请求、尝试申请读锁请求、释放读锁请求、申请写锁请求、尝试申请写锁请求和释放写锁请求。
作为本发明的进一步改进,当用户申请读/写锁时,包括以下步骤:
a1.互斥锁加锁;
b1.检查写/读锁等待计数器是否为零,如果为零,则优先类型标志置为读/写优先,允许读/写锁申请;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安西热电站信息技术有限公司,未经西安西热电站信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011325771.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种库位对接布局方法以及电子设备、存储介质
- 下一篇:一种骨外科急救治疗设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置