[发明专利]一种对于磁盘读写数据的多线程/多进程无锁处理方法及系统有效

专利信息
申请号: 201710512828.9 申请日: 2017-06-29
公开(公告)号: CN107368362B 公开(公告)日: 2020-10-30
发明(设计)人: 徐海峰 申请(专利权)人: 上海阅文信息技术有限公司
主分类号: G06F9/48 分类号: G06F9/48;G06F9/50
代理公司: 上海金盛协力知识产权代理有限公司 31242 代理人: 郑鸣捷
地址: 201203 上海*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 对于 磁盘 读写 数据 多线程 进程 处理 方法 系统
【说明书】:

发明公开了一种对于磁盘读写数据的多线程/多进程无锁处理方法及系统。该方法包括:步骤1:创建多个处理线程/多个处理进程并对每个处理线程/处理进程进行标识;步骤2:为每个处理线程/处理进程分配一个单独的文件或者是同一个文件中的某一段文件块,保证处理线程/处理进程单一地处理被分配到文件或文件块;步骤3:主socket接收磁盘操作请求,根据接收到请求具有的线程标识/进程标识,将操作分配到其相关的处理线程/进程,然后由相关的线程/进程进行处理。本发明提供的磁盘写入方案全程无锁,无需采用CAS增加CPU的能耗,提高了磁盘写入的效率。

技术领域

本发明公开了一种对于磁盘读写数据的多线程/多进程无锁处理方法及系统,主要涉及磁盘读写领域。该方法创建多个处理线程/处理进程,并为每个处理线程/处理进程设置相应的标识,保证处理线程/处理进程单一地处理对应于各自文件或文件块的操作请求,来提高磁盘读写的效率。本发明提供的磁盘写入方案全程无锁,无需采用CAS增加CPU的能耗,提高了磁盘写入的效率。

背景技术

在磁盘读写这一方面,为了提高读写的速度/效率,通常采用多线程/多进程处理对磁盘的操作。而采用多线程/多进程处理针对磁盘操作带来的一个问题是需要解决并发导致的数据版本错乱问题。通常的做法都是在各个线程/进程中,对于同一块数据进行加入互斥锁的方式来解决。后来随着计算机的发展,CPU的技术也一直在进步,CPU的制造商又加入了CAS的方式来解决因为加互斥锁带来的排队性能损耗。但是CAS本质上其实是使用CPU的空转或者说自旋来不断的尝试处理数据,以此来用CPU的能耗换取更快的处理。这些技术的背后或多或少的都带有一些问题,不是性能不足就是对硬件的CPU要求更高。为此,进一步提高多线程/多进程读写数据的效率成为业界内一个热门并且难以解决的问题。归根结底的问题在于因为多线程/多进程读写需要额外采取措施解决并发导致的数据版本错乱问题,为此带来附加的性能损耗/能耗。

图1显示传统的采用互斥锁来解决多线程/多进程磁盘读写导致的版本错乱的技术方案。该方案中主socket请求接收到请求后,会将请求交给后续的线程/进程进行处理,然后请求会一直被传递下去,直到到达写入或者读取阶段,因为文件块就一个,而又有多个线程/多个进程同时进行操作,所以在操作的时候,必须在每个线程/进程中都加一个互斥锁来保证读取数据的唯一性和准确性,而没有抢到锁的线程/进程将会被强行休眠/置于等待互斥锁的状态。即保证任何时刻只有一个线程/进程在进行读写,其他线程/进程处于休眠或者等待的状态。

图2显示另一种传统的多线程/多进程磁盘读方案。该方案是将处理IO的线程/IO进程(真正用于实现磁盘操作的线程)合并为一个,这里加锁的点不在于处理IO线程/进程上,而是从网络处理线程/进程到IO线程/IO进程的步骤中,对比于图1所述的方案,仅仅是把加锁的提前了、依然需要加锁处理。原理还是因为多线程对应单线程/多进程对单进程,如果不采用加锁处理,不管IO线程/IO进程是使用排队还是使用队列,还是无法解决同时并发导致版本错乱的问题。

上面提到的现有技术方案,最基本的技术缺点是不管怎么变化,都使用到了互斥锁。它的症结其实都是在于多线程/多进程对于单一资源同时处理的时候,如果不加锁则无法保证多线程/多进程的顺序性。系统只允许拿到钥匙的线程/进程进行处理,但是互斥锁的加入会将没有拿到锁的线程/进程强制休眠/处于等待状态,当线程/进程从休眠到被唤醒又需要系统额外的做2次内核和用户态的上下文交换,所以系统整体的性能将会被整个的拖慢。对于以上传统的技术方案,也有可能会在写入IO或者发送信息到处理IO线程/IO进程的时候使用无锁算法,比如CAS算法,但是这种算法是通过不断的尝试获取资源,空转CPU来实现的,虽然也是无锁算法,但是CPU资源消耗严重,在系统繁忙的时候会让CPU持续的飙高。

发明内容

为了解决现有技术中多线程写读需要额外采取措施解决并发导致的数据版本错乱问题,带来附加的性能损耗/能耗技术问题。本发明提供一种磁盘读写数据的多线程/多进程无锁处理方法。该方法包括:

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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