[发明专利]一种融合命令处理方法、系统、设备以及介质有效
申请号: | 202011270482.4 | 申请日: | 2020-11-13 |
公开(公告)号: | CN112363762B | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 尹作刚 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/54 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 张涛;宋薇薇 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 融合 命令 处理 方法 系统 设备 以及 介质 | ||
本发明公开了一种融合命令处理方法,包括以下步骤:获取队列中的命令;响应于获取到的命令是融合命令中的第一子命令,将第一子命令分配到第一缓存中;响应于获取到的命令是融合命令中的第二子命令,将第二子命令分配到第二缓存中,并建立第二子命令在第二缓存中的指针位置与对应的第一子命令在第一缓存中的指针位置之间的映射关系;处理第一缓存中的第一子命令,并在处理完第一子命令后根据对应的映射关系获取并处理对应的第二子命令。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明通过建立第一子命令的指针位置和第二子命令的指针位置的一一映射关系,实现先处理第一子命令,后处理第二子命令,可以更有效的提高存储业务。
技术领域
本发明涉及命令融合领域,具体涉及一种融合命令处理方法、系统、设备以及存储介质。
背景技术
随着存储系统的不断发展,存储服务器的协议栈上如vSphere 7.0存储栈采用NVMe协议上更多的命令,尤其采用组合的融合命令,融合操作通过“fusing”把两个简单的命令融合一起来支持一个更复杂的命令,可以更有效的提高存储业务,如比较和写融合命令,在保证之前存储业务无问题的情况下再进行内容的更新,如果出现读取的数据与比较的数据不一致,可能之前的业务保存已经出现问题,不需要再进行IO写业务,直接返回主机错误。但是现有技术中无法提供复杂融合命令的实现机制。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种融合命令处理方法,包括以下步骤:
获取队列中的命令;
响应于获取到的命令是融合命令中的第一子命令,将所述第一子命令分配到第一缓存中;
响应于获取到的命令是融合命令中的第二子命令,将所述第二子命令分配到第二缓存中,并建立所述第二子命令在所述第二缓存中的指针位置与对应的所述第一子命令在所述第一缓存中的指针位置之间的映射关系;
处理所述第一缓存中的第一子命令,并在处理完所述第一子命令后根据对应的映射关系获取并处理对应的所述第二子命令。
在一些实施例中,将所述第一子命令分配到第一缓存中或者将所述第二子命令分配到第二缓存中,进一步包括:
根据所述获取到的命令的标志位判断是否属于融合命令;
响应于属于融合命令,将所述获取到的命令分配到所述第一缓存或所述第二缓存中。
在一些实施例中,响应于获取到的命令是融合命令中的第二子命令,将所述第二子命令分配到第二缓存中,进一步包括:
判断所述第二子命令与所述第一缓存中对应的第一子命令所占用的LBA的范围是否相同;
响应于相同,将所述第二子命令分配到第二缓存中。
在一些实施例中,还包括:
将组合成融合命令的所述第一子命令和所述第二子命令插入所述队列中的相邻位置。
在一些实施例中,处理所述第一缓存中的第一子命令,进一步包括:
对待处理的所述第一子命令进行LBA加锁;
响应于加锁成功,处理所述待处理的第一子命令,并在处理完成后进行解锁处理。
在一些实施例中,在处理完所述第一子命令后根据对应的映射关系获取并处理对应的所述第二子命令,进一步包括:
响应于第一子命令处理失败,不再处理对应的所述第二子命令,直接返回错误返回值。
在一些实施例中,还包括:
响应于获取到的命令不是融合命令中的第一子命令或第二子命令,将命令分配到其他缓存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011270482.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用省煤器灰斗脱除粗颗粒灰的装置
- 下一篇:一种方便清理的鸡笼