[发明专利]通过对读取请求和读取完成通知进行排队和批处理来减少每个I/O的CPU开销在审
申请号: | 202080009747.7 | 申请日: | 2020-01-04 |
公开(公告)号: | CN113383303A | 公开(公告)日: | 2021-09-10 |
发明(设计)人: | X·黄;B·T·尼茨科夫斯基;M·S·斯特林;M·J·麦克纳尔蒂 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 胡利鸣 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通过 读取 求和 完成 通知 进行 排队 批处理 减少 每个 cpu 开销 | ||
存储堆栈公开API供用户模式应用来使用。应用调用由API公开的功能以在文件提交队列(“FSQ”)上将对读取文件的请求入队。FSQ中的读取请求以批处理出列,并且出列的读取请求的批处理中的文件偏移被转换成磁盘偏移。读取请求的经转换的批处理被存储在存储提交队列(“SSQ”)中。存储子系统从SSQ检索经转换的读取请求的批处理并执行指定的读取操作。针对读取请求的完成通知被存储在存储完成队列(“SCQ”)中。完成通知的批处理从SCQ出列并被转换成文件完成。文件完成的批处理被存储在文件完成队列(“FCQ”)中。提交读取请求的用户模式应用可使完成通知的批处理从FCQ出列。
背景技术
现代存储接口和协议能够每秒执行大量的输入/输出(“I/O”)操作(“IOPS”),特别是当与诸如固态驱动器(“SSD”)之类的非易失性存储器设备一起使用时。然而,在许多实现中,这些接口和协议被传统存储堆栈利用,该传统存储堆栈最初设计成与速度慢得多的接口、协议和基于磁盘的大容量存储设备一起使用。
尽管传统存储堆栈可与更现代的存储接口和协议进行互操作,但这种组合通常以中央处理单元(“CPU”)开销为代价。具体而言,要充分实现现代存储接口和协议的功能,每个I/O操作需要大量的CPU周期。
传统存储堆栈通常还提供基于文件的编程友好接口以用于访问底层存储设备。但是,这也会以有时CPU利用率很高为代价。用户模式应用可以获得对可用存储设备的近乎原始的访问,从而获得低CPU利用率和高IOPS。但是,这会使应用变得非常复杂,因为它们不再具有对文件系统的访问权限,而是必须以块级别访问存储设备。
本文所做出的本公开正是关于这些和其他技术挑战而提出的。
发明内容
本文公开了用于通过对读取请求和读取完成通知进行排队和批处理来减少每个I/O的CPU开销的技术。通过所公开的技术的实现,由现代存储接口和协议提供的高数量IOPS的潜力可被实现,而同时降低CPU利用率,即使当用户模式应用利用基于文件的接口来访问存储时也是如此。本文中未具体提及的其他技术益处也可以通过所公开主题的实施来实现。
为了实现上面简要提到的技术益处以及其他潜在益处,存储堆栈公开应用编程接口(“API”)以供用户模式应用使用。通过使用API所公开的功能,用户模式应用可使用基于文件的接口向存储堆栈提交读取请求。反过来,存储堆栈可使用现代存储接口和协议执行读取请求,从而减少每个I/O操作所使用的CPU周期数。
在一个实施例中,本文公开的API公开了用于创建队列(本文中称为文件提交队列(“FSQ”)的功能,以用于存储由用户模式应用生成的读取请求。API还可公开一个功能,当调用该功能时,将打开指定文件以供读取。
一旦用户模式应用利用API创建FSQ并打开文件,该用户模式应用就可调用API公开的另一功能来在FSQ上将对读取文件的请求(“读取请求”)入队。读取请求标识文件、要进行读取的文件内的偏移、以及要读取的数据量。读取请求可包括其他信息,诸如但不限于指定读取请求的优先级的数据或可用于取消请求群组的标记。
在一些实施例中,提交读取请求的应用可指定一个或多个条件,当满足条件时,将导致FSQ中的读取请求的批处理以下面描述的方式出列并被处理。例如,在没有限制的情况下,当FSQ包含指定数量的读取请求时,或者当FSQ包含读取指定数据量的请求时,应用可指定FSQ中的读取请求将响应于定时器到期来出列并被处理。API还可公开一个功能,当应用调用该功能时,将导致FSQ中的读取请求立即出列,并以下面描述的方式被处理。
如上文简要提及的,存储在FSQ中的读取请求将以批处理出列。从FSQ中出列的读取请求的批处理中的文件偏移随后被转换成磁盘偏移。读取请求的经转换的批处理被存储在另一队列中,本文称为存储提交队列(“SSQ”)。存储子系统可从SSQ检索经转换的读取请求的批处理并使用指定的磁盘偏移对文件执行读取请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080009747.7/2.html,转载请声明来源钻瓜专利网。