[发明专利]一种存储系统中IO请求的处理方法、系统及相关装置在审
申请号: | 201811550720.X | 申请日: | 2018-12-18 |
公开(公告)号: | CN109582467A | 公开(公告)日: | 2019-04-05 |
发明(设计)人: | 甄凤远 | 申请(专利权)人: | 广东浪潮大数据研究有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 510620 广东省广州市天河区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储系统 存储卷 线程 计算机可读存储介质 多线程处理 并行处理 处理系统 存储设备 时间顺序 相关装置 写数据 加锁 链表 申请 自旋 | ||
本申请提供一种存储系统中IO请求的处理方法,包括:当接收到IO请求时,确定IO请求所属的存储卷;判断存储卷是否存在其他IO请求正在被处理;若是,将IO请求挂到对应的链表;在其他IO请求处理完毕后,处理IO请求。通过将属于同一存储卷的IO请求按时间顺序执行,避免同一卷的多个IO请求并行处理,解决了多线程处理同一卷IO请求时需要自旋锁的问题,不会存在多个线程向同一个存储卷上写数据,线程之间无需加锁互等,提高了存储系统中线程处理IO请求的效率。本申请还提供一种存储系统中IO请求的处理系统、一种计算机可读存储介质和一种存储设备,具有上述有益效果。
技术领域
本申请涉及数据存储领域,特别涉及一种存储系统中IO请求的处理方法、系统及相关装置。
背景技术
传统的存储系统为了提高并发量,会采用多个核心同时对主机下发的IO请求进行处理,IO由主机到达存储系统,存储系统调用多个线程并发处理,但是属于同一个卷的数据应该是有序的处理,从而才能保证数据的一致性,所以当属于一个卷的多个IO同时下发的时候,会存在多个线程之间必须要加锁,就会产生互相等待的情况,又因为存储系统对于实时性要求比较高,通常采用自旋锁,死等的结果会导致CPU占用率较高,但是整个系统的性能并不好,由于系统比较复杂,过多的加锁等待也会增加了死锁的概率,使系统的不稳定性大大增加。
发明内容
本申请的目的是提供一种存储系统中IO请求的处理方法、系统、一种计算机可读存储介质和一种存储设备,解决了现有的存储系统中因为多线程之间处理同一卷的IO请求时需要自旋锁带来的系统性能差的问题。
为解决上述技术问题,本申请提供一种存储系统中IO请求的处理方法,具体技术方案如下:
当接收到IO请求时,确定所述IO请求所属的存储卷;
判断所述存储卷是否存在其他IO请求正在被处理;
若是,将所述IO请求挂到对应的链表;
在所述其他IO请求处理完毕后,按顺序处理所述链表中的IO请求。
其中,还包括:
当接收到其他IO请求时,根据映射表调用所述其他IO请求对应的线程处理所述其他IO请求;
其中,所述映射表为包含存储卷与线程之间一一对应关系的映射表。
其中,还包括:
建立所述映射表,并将所述映射表存于预设地址。
其中,若存储卷的数量等于核心数量,还包括:
将所述线程与所述核心绑定。
其中,若存储卷的数量小于核心数量,还包括:
所述线程利用若干核心按顺序处理所述链表中的IO请求。
本申请还提供一种存储系统中IO请求的处理系统,具体技术方案如下:
确定模块,用于当接收到IO请求时,确定所述IO请求所属的存储卷;
判断模块,用于判断所述存储卷是否存在其他IO请求正在被处理;
暂挂模块,用于若所述判断模块判断为是时,将所述IO请求挂到对应的链表;
处理模块,用于在所述其他IO请求处理完毕后,按顺序处理所述链表中的IO请求。
其中,还包括:
线程调用模块,用于当接收到其他IO请求时,根据映射表调用所述其他IO请求对应的线程处理所述其他IO请求;
其中,所述映射表为包含存储卷与线程之间一一对应关系的映射表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东浪潮大数据研究有限公司,未经广东浪潮大数据研究有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811550720.X/2.html,转载请声明来源钻瓜专利网。