[发明专利]一种数据服务器端分区内部并发I/O调度方法及系统有效
| 申请号: | 201911089216.9 | 申请日: | 2019-11-08 |
| 公开(公告)号: | CN110837411B | 公开(公告)日: | 2023-05-12 |
| 发明(设计)人: | 肖飞;游成毅 | 申请(专利权)人: | 敏博科技(武汉)有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 深圳泛航知识产权代理事务所(普通合伙) 44867 | 代理人: | 邓爱军 |
| 地址: | 430023 湖北省武汉市硚口区*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据 服务器端 分区 内部 并发 调度 方法 系统 | ||
本发明提出了一种数据服务器端分区内部并发I/O调度方法及系统,该方法包括,接收I/O请求,检测当前I/O请求中的读请求或写请求与请求冲突队列或请求执行队列中的在先请求是否冲突,将存在冲突的读请求或写请求加入到对应的请求冲突队列中,将不存在冲突的读请求或写请求加入到对应的请求执行队列中。本发明通过避免不存在读写冲突或者写写冲突的请求之间的无谓的等待,有效提升数据服务器端分区内部IO的并发度和响应时延,提升数据服务器的IO性能,进而提升存储系统的整体IO性能。
技术领域
本发明涉及计算机领域,特别是涉及一种数据服务器端分区内部并发I/O调度方法及系统。
背景技术
对于一个存储系统来说,最终的数据读写都是发生在数据服务器上,因此数据服务器的性能对于整个存储系统的性能具有至关重要的意义。数据服务器对于存储系统中的所有客户端来说都是共享的,因此,数据服务器会接收到来自不同客户端的请求,这些请求可能是关于同一个文件的相同字节区间,也可能是关于同一个文件的不同字节区间,还可能是关于不同文件各自的字节区间。为了提高数据服务器处理的并发度,通常会在数据服务器端对接收到的请求按照一定的规则进行分区,并为每个分区绑定一个执行单元,由这个执行单元来执行率属于该分区的请求。分区规则有多种,比如以文件为单位进行分区,同一个文件的请求被分配到同一个分区,不同文件的请求则可能被分配到相同的分区,也可能被分配到不同的分区,再比如将文件划分为一个个大小相等的切片,然后按照切片来进行分区,同一个文件的相同切片被分配给同一个分区,同一个文件的不同切片或者不同文件的切片则可能被分配到相同的分区,也可能被分配到不同的分区。因为每个执行单元操作对应到一个独立的分区,确切的说是不同的文件,或者是不同的分片,在分区之间各文件或者各分片是相互独立的,因此多个执行单元之间是可以并行运行的。但是对于每个执行单元内部来说,为了数据一致性的考虑,所有的请求都是在请求队列中按照FIFO的方式执行的,这种执行方式确实在IO调度层面解决了数据一致性的问题,但是对于每个执行单元的性能来说并不友好,因为同一个执行单元内部的不同请求之间可能不存在读写相关或者写写相关,这些请求可以更早的被调度执行,而无需等待先于它到达的请求执行完毕之后才被调度执行。
发明内容
为解决上述技术问题,本发明提出了一种数据服务器端分区内部并发I/O调度方法及系统。本发明通过避免不存在读写冲突或者写写冲突的请求之间的无谓的等待,有效提升数据服务器端分区内部IO的并发度和响应时延,提升数据服务器的IO性能,进而提升存储系统的整体IO性能。
根据本发明的一实施例,本发明提出了一种数据服务器端分区内部并发I/O调度方法,该方法包括:接收I/O请求,检测当前I/O请求中的读请求或写请求与请求冲突队列或请求执行队列中的在先请求是否冲突,将存在冲突的读请求或写请求加入到对应的请求冲突队列中,将不存在冲突的读请求或写请求加入到对应的请求执行队列中。
优选的,所述检测当前I/O请求中的读请求或写请求与请求冲突队列或请求执行队列中的在先请求是否冲突,将存在冲突的读请求或写请求加入到对应的请求冲突队列中,将不存在冲突的读请求或写请求加入到对应的请求执行队列中,还包括,检测所有先于当前请求到达的且仍处于请求冲突队列或者请求执行队列中的请求进行冲突检测,如果检测到冲突,则除了将当前请求添加到对应的冲突队列以外,还将当前请求添加到与之存在冲突的请求的阻塞队列中,如果有多个请求与当前请求存在冲突,则会将当前请求添加到所有与之冲突的请求的阻塞队列中,且当前请求中会记录与它存在冲突的请求的数目。
优选的,所述检测当前I/O请求中的读请求或写请求与请求冲突队列或请求执行队列中的在先请求是否冲突的检测过程具体包括:
S101.初始化与新到达的当前请求req之间存在冲突的请求数目blockerNum为0;
S102.获取新到达的当前请求req对应的IO的字节区间[reqStart,reqEnd],其中,reqStart表示请求req的起始偏移地址,reqEnd为请求req的终止偏移地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于敏博科技(武汉)有限公司,未经敏博科技(武汉)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911089216.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





