一种服务质量控制方法、装置、电子设备和存储介质转让专利

申请号 : CN201910290104.3

文献号 : CN109992217B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 施培任张在理刘树亮

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请提供了一种服务质量控制方法,包括:根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度;判断第一读写请求顺序长度是否大于预设阈值;若是,则读写请求确定为顺序读写;若否,则读写请求确定为随机读写;根据顺序读写或随机读写进行服务质量控制。可见,本申请避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,易造成控制过度而降低系统性能;提高了服务质量,改善用户体验。本申请同时还提供了一种服务质量控制装置、电子设备和计算机可读存储介质,均具有上述有益效果。

权利要求 :

1.一种服务质量控制方法,其特征在于,包括:

根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;

判断所述第一读写请求顺序长度是否大于预设阈值;

若是,则所述读写请求确定为顺序读写;若否,则所述读写请求确定为随机读写;

根据所述顺序读写或所述随机读写进行服务质量控制;

其中,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度,包括:根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;

当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。

2.根据权利要求1所述的服务质量控制方法,其特征在于,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度之后,还包括:将所述读写请求的数据信息记录在所述哈希数组中。

3.根据权利要求1或2所述的服务质量控制方法,其特征在于,根据所述顺序读写或所述随机读写进行服务质量控制,包括:根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;

判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;

若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;

若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。

4.一种服务质量控制装置,其特征在于,包括:

长度确定模块,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;

判断模块,用于判断所述第一读写请求顺序长度是否大于预设阈值;

识别模块,用于若是,则确定所述读写请求为顺序读写;若否,则确定所述读写请求为随机读写;

控制模块,用于根据所述顺序读写或所述随机读写进行服务质量控制;

其中,所述长度确定模块包括:

查找单元,用于根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;

长度确定单元,用于当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。

5.根据权利要求4所述的服务质量控制装置,其特征在于,还包括:记录模块,用于将所述读写请求的数据信息记录在所述哈希数组中。

6.根据权利要求4或5所述的服务质量控制装置,其特征在于,所述控制模块包括:处理单元,用于根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;

判断单元,用于判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;

应答单元,用于若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。

7.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述服务质量控制方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述服务质量控制方法的步骤。

说明书 :

一种服务质量控制方法、装置、电子设备和存储介质

技术领域

[0001] 本申请涉及服务质量技术领域,特别涉及一种服务质量控制方法、装置、电子设备和计算机可读存储介质。

背景技术

[0002] 在计算机存储区域网络(SAN)类型的存储系统中,由于IO栈上各层资源以及整体的性能是有限的,包括前端主机通道如Fibre Channel或Iscsi网络、缓存Cache、CPU处理能力、后端磁盘性能,而一台存储系统支持多个主机访问,主机之间共享和争夺存储资源,为了避免资源抢占和分配不均,导致不同主机或不同逻辑单元上的应用性能极度不均,存储系统提供了服务质量QOS相关的控制功能。SAN存储系统的服务质量控制的一般方法是以主机、逻辑单元为对象,限制IOPS、MBPS,这在主机IO特征(IOPS、MBPS、块大小、随机顺序比例)稳定情况下是能满足要求的,但是,存储系统支持的随机、顺序的读写性能是不同的,尤其在机械盘系统上随机、顺序读写性能相差很大,一个机械盘随机读写IOPS在100到300之间,而顺序读写可在10000以上,也就是随机、顺序读写性能相差达到几十、上百倍,而对于同一个逻辑单元LU,在主机端可能会将它分成多个逻辑分区用于不同的应用,或者同一个分区给多个应用共享存储,这会导致主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此不能保证服务质量,易造成控制过度而降低系统性能。
[0003] 因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。

发明内容

[0004] 本申请的目的是提供一种服务质量控制方法、服务质量控制装置、电子设备和计算机可读存储介质,通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成保证服务质量低进而,易造成控制过度而降低系统性能;提高了服务质量,改善用户体验。其具体方案如下:
[0005] 本申请提供一种服务质量控制方法,包括:
[0006] 根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;
[0007] 判断所述第一读写请求顺序长度是否大于预设阈值;
[0008] 若是,则所述读写请求确定为顺序读写;若否,则所述读写请求确定为随机读写;
[0009] 根据所述顺序读写或所述随机读写进行服务质量控制。
[0010] 优选地,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度,包括:
[0011] 根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;
[0012] 当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。
[0013] 优选地,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度之前,还包括:
[0014] 将所述读写请求的数据信息记录在所述哈希数组中。
[0015] 优选地,根据所述顺序读写或所述随机读写进行服务质量控制,包括:
[0016] 根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;
[0017] 判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;
[0018] 若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;
[0019] 若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。
[0020] 本申请提供一种服务质量控制装置,包括:
[0021] 长度确定模块,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;
[0022] 判断模块,用于判断所述第一读写请求顺序长度是否大于预设阈值;
[0023] 识别模块,用于若是,则确定所述读写请求为顺序读写;若否,则确定所述读写请求为随机读写;
[0024] 控制模块,用于根据所述顺序读写或所述随机读写进行服务质量控制。
[0025] 优选地,所述长度确定模块包括:
[0026] 查找单元,用于根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;
[0027] 长度确定单元,用于当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。
[0028] 优选地,还包括:
[0029] 记录模块,用于将所述读写请求的数据信息记录在所述哈希数组中。
[0030] 优选地,所述控制模块包括:处理单元,用于根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;
[0031] 判断单元,用于判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;
[0032] 应答单元,用于若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。
[0033] 本申请提供一种电子设备,包括:
[0034] 存储器,用于存储计算机程序;
[0035] 处理器,用于执行所述计算机程序时实现如上述服务质量控制方法的步骤。
[0036] 本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述服务质量控制方法的步骤。
[0037] 本申请提供一种服务质量控制方法,包括:根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;判断所述第一读写请求顺序长度是否大于预设阈值;若是,则所述读写请求确定为顺序读写;若否,则所述读写请求确定为随机读写;根据所述顺序读写或所述随机读写进行服务质量控制。可见,本申请通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,易造成服务质量控制不灵活,易造成控制过度或者不满足随机顺序两类业务性能需求;提高了服务质量,改善用户体验。本申请同时还提供了一种服务质量控制装置、电子设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。

附图说明

[0038] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039] 图1为本申请实施例所提供的一种服务质量控制方法的流程图;
[0040] 图2为本申请实施例所提供的另一种服务质量控制方法的流程图;
[0041] 图3为本申请实施例所提供的另一种服务质量控制方法的流程图;
[0042] 图4为本申请实施例提供的一种服务质量控制装置的结构示意图。

具体实施方式

[0043] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0044] 相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此不能保证服务质量,造成控制过度而降低系统性能。基于上述技术问题,本实施例提供一种服务质量控制方法,通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成保证服务质量低进而,易造成控制过度而降低系统性能;提高了服务质量,改善用户体验。具体请参考图1,图1为本申请实施例所提供的一种服务质量控制方法的流程图,具体包括:
[0045] S101、根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
[0046] 本步骤的目的是通过写请求的第一IO起始地址查找哈希数组中的各个元素,进而确定读写请求的第一读写请求顺序长度。本实施例接收到读写请求后,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度,具体的,在接收到读写请求后,则根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
[0047] 哈希数组IO_TABLE记录读写请求的历史信息,每个数组元素是一个链表,链表的元素包含以下结构:IO_Start(IO起始地址),IO_Size(读写请求顺序长度),IO_Count(IO数量),Last_Req_Id(最后一个IO序号),Last_Req_Time(最后一个时间)。每个逻辑单元用一个变量记录对该逻辑单元的读或者写的次数,记该变量为TOL_COUNT。收到主机读或者写请求后计算该请求的序号Req_Id,计算的方法是对TOL_COUNT原子加1得到本次IO的序号。计算该读写请求对应在哈希数组IO_TABLE中的元素Index:Index=Req_Start/Seq_Size%Hash_Magic;其中Req_Start表示该读写请求的起始地址,Seq_Size表示一个顺序流的大小,例如2MB,4MB,Hash_Magic是哈希数组IO_TABLE的大小,一般是一个素数,例如8219。
[0048] 查找哈希数组IO_TABLE中的元素Index对应的链表,对每个链表元素记性操作。若当前时间比该元素的Last_Req_Time晚于预设的时长,则删除该元素;若该读写请求的Req_Id比该元素的Last_Req_Id大于预设的阈值,则删除该元素。获得第一读写请求顺序长度,其中,第一读写请求顺序长度可以是第一读写请求顺序长度原始长度,也可以是通过检测哈希数组中的元素将与当前读写请求的重叠或者相邻的数据进行关联后的长度,具体可以根据实际情况进行设定,只要满足本实施例的目的即可。
[0049] S102、判断第一读写请求顺序长度是否大于预设阈值。
[0050] 本实施例不对预设阈值进行限定,用户可根据实际需求设定。预设阈值主要用来区分顺序读写还是随机读写,当第一读写请求顺序长度小于预设阈值时是随机读写,当大于预设阈值时是顺序读写。
[0051] S103、读写请求确定为顺序读写。
[0052] 当第一读写请求顺序长度大于预设阈值时,则执行步骤S103读写请求确定为顺序读写。
[0053] S104、读写请求确定为随机读写。
[0054] 当第一读写请求顺序长度小于预设阈值时,则执行步骤S104读写请求确定为顺序读写。
[0055] S105、根据顺序读写或随机读写进行服务质量控制。
[0056] 根据顺序读写或者随即读写进行服务质量控制,此时,由于区分了随机和顺序两种读写类型,有利于系统读写性能的提高,提高读写应答的能力,进而提高了服务质量。
[0057] 基于上述技术方案,本实施例通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成控制不准确;本实施例提高了服务质量,改善用户体验。
[0058] 基于上述实施例,本实施例提供一种服务质量控制方法,具体请参考图2,图2为本申请实施例所提供的另一种服务质量控制方法的流程图,包括:
[0059] S201、根据读写请求的第一IO起始地址查找哈希数组中的各个元素。
[0060] S202、当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
[0061] 具体的,当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
[0062] 计算若IO_Start+IO_Size等于本次读写请求的起始地址Req_Start,则修改如下元素字段,其中,IO_Start+IO_Size是第二IO起始地址与第二读写请求顺序长度的和:
[0063] IO_Size=IO_Size+Req_Size,
[0064] IO_Count=IO_Count+1,
[0065] Last_Req_Id=Req_Id,
[0066] Last_Req_Time=当前时间;
[0067] 其中,Req_Size是本次读写请求的长度即读写请求顺序长度,Req_Id是当前的读写请求序号,Last_Req_Id是最后一个请求序号,IO_Count是当前请求的数量,Last_Req_Time是最后一个请求的时间。
[0068] 进一步的,若未找到一段连续的IO请求,则将本次读写请求信息插入该链表,[0069] IO_Size=Req_Size,
[0070] IO_Count=1,
[0071] Last_Req_Id=Req_Id,
[0072] Last_Req_Time=当前时间,
[0073] IO_Start=Req_Start;
[0074] 其中,Req_Size是本次读写请求的长度即读写请求顺序长度,Req_Id是当前的读写请求序号,Last_Req_Id是最后一个请求序号,IO_Count是当前请求的数量,Last_Req_Time是最后一个请求的时间,Req_Start本次读写请求的起始地址。
[0075] S203、判断第一读写请求顺序长度是否大于预设阈值。
[0076] S204、读写请求确定为顺序读写。
[0077] 步骤S203后,若第一读写请求顺序长度大于预设阈值,则执行步骤S204读写请求确定为顺序读写。
[0078] S205、读写请求确定为随机读写。
[0079] 步骤S203后,若第一读写请求顺序长度不大于预设阈值,则执行步骤S205读写请求确定为随机读写。
[0080] S206、根据顺序读写或随机读写进行服务质量控制。
[0081] 确定读写请求的类型后,根据顺序读写或随机读写进行服务质量控制。
[0082] 基于上述技术方案,本实施例通过利用根据读写请求的第一IO起始地址查找哈希数组中的各个元素;当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和来确定第一读写请求顺序长度,将读写请求对应的信息进行合并整理,进而根据顺序读写或随机读写进行服务质量控制,提高服务质量,改善用户体验。
[0083] 基于上述实施例,本实施例提供一种服务质量控制方法,具体请参考图3,图3为本申请实施例所提供的另一种服务质量控制方法的流程图,包括:
[0084] S301、根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
[0085] S302、判断第一读写请求顺序长度是否大于预设阈值。
[0086] S303、读写请求确定为顺序读写。
[0087] 步骤S302后,若第一读写请求顺序长度大于预设阈值,则执行步骤S303读写请求确定为顺序读写。
[0088] S304、读写请求确定为随机读写。
[0089] 步骤S302后,若第一读写请求顺序长度不大于预设阈值,则执行步骤S304读写请求确定为随机读写。
[0090] S305、根据读写类型将与读写请求对应的读写数据进行缓存处理获得缓存数据;其中,读写类型包括顺序读写和随机读写。
[0091] 按照读写类型进行缓存处理,获得缓存数据。具体的,在接收到每个读写请求时记录该读写请求的接收时间,并记录所属随机读写或者顺序读写类型的历史的最后Freq+1个的读写请求的接收时间和最后Freq个读写请求的总的请求长度即Last_Freq_Size。Freq是预设的每处理Freq个IO就进行延时控制的期望阈值,并使0.001秒<=Freq/IOPS限制值<=0.01秒。
[0092] S306、判断读写类型对应的读写请求数量是否为期望阈值的倍数;其中,期望阈值记为Freq。
[0093] S307、判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
[0094] 步骤S306后,若不是期望阈值的倍数,则执行步骤S307判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
[0095] S308、根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果。
[0096] 步骤S306后,若是期望阈值的倍数,则执行步骤S308根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果。
[0097] 具体的,按随机读写或顺序读写类型累计该类型的读写请求数量,正常处理该读写请求,直到发送结果(即SCSI_RESPONSE)前,判断读写类型对应的读写请求数量是否为期望阈值的倍数,来确定应答。
[0098] 若该类型的读写请求数量并非Freq的倍数,则判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。值得注意的是,在延时等待期间,其他未应答的读写请求也挂起等待而不应答。
[0099] 若是期望阈值的倍数,则根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果。具体的,该类型的读写请求数量是Freq的倍数,若设置了该类型读写请求的IOPS,则计算限制IOPS的等待时间即Iops_Wait,否则Iops_Wait=0表示不需等待:Iops_Wait=((1/IOPS)*Freq)–(当前时间-(该类读写请求的倒数第Freq的请求的接收时间))。该类型的读写请求数量是Freq的倍数,若设置了该类型读写请求的MBPS,则计算限制MBPS的等待时间Mbps_Wait,否则Mbps_Wait=0表示不需等待:Mbps_Wait=((1/MBPS)*Last_Freq_Size)–(当前时间-(该类读写请求的倒数第Freq的请求的接收时间))。若Iops_Wait或者Mbps_Wait大于0,取两者中最大者,等待延迟对应时间后再应答读写请求结果(SCSI_RESPONSE)。
[0100] 基于上述技术方案,本实施例通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成控制不准确;本实施例提高了服务质量,改善用户体验。
[0101] 下面对本申请实施例提供的一种服务质量控制装置进行介绍,下文描述的服务质量控制装置与上文描述的服务质量控制方法可相互对应参照,相关模块均设置于中,参考图4,图4为本申请实施例所提供的一种服务质量控制装置的结构示意图,包括:
[0102] 长度确定模块401,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度;
[0103] 判断模块402,用于判断第一读写请求顺序长度是否大于预设阈值;
[0104] 识别模块403,用于若是,则确定读写请求为顺序读写;若否,则确定读写请求为随机读写;
[0105] 控制模块404,用于根据顺序读写或随机读写进行服务质量控制。
[0106] 在一些具体的实施例中,长度确定模块401包括:
[0107] 查找单元,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素;
[0108] 长度确定单元,用于当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
[0109] 在一些具体的实施例中,还包括:
[0110] 记录模块,用于将读写请求的数据信息记录在哈希数组中。
[0111] 在一些具体的实施例中,控制模块504包括:
[0112] 处理单元,用于根据读写类型将与读写请求对应的读写数据进行缓存处理获得缓存数据;其中,读写类型包括顺序读写和随机读写;
[0113] 判断单元,用于判断读写类型对应的读写请求数量是否为期望阈值的倍数;其中,期望阈值记为Freq;
[0114] 应答单元,用于若是期望阈值的倍数,则根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果;若不是期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
[0115] 由于服务质量控制装置部分的实施例与服务质量控制方法部分的实施例相互对应,因此服务质量控制装置部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
[0116] 下面对本实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的服务质量控制方法可相互对应参照。
[0117] 本实施例提供一种电子设备,包括:
[0118] 存储器,用于存储计算机程序;
[0119] 处理器,用于执行计算机程序时实现如上述服务质量控制方法的步骤。
[0120] 由于电子设备部分的实施例与服务质量控制方法部分的实施例相互对应,因此电子设备部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
[0121] 下面对本实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的服务质量控制方法可相互对应参照。
[0122] 本实施提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述服务质量控制方法的步骤。
[0123] 由于计算机可读存储介质部分的实施例与服务质量控制方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
[0124] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0125] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0126] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0127] 以上对本申请所提供的一种服务质量控制方法、服务质量控制装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。