CN109992217B - 一种服务质量控制方法、装置、电子设备和存储介质 - Google Patents
一种服务质量控制方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN109992217B CN109992217B CN201910290104.3A CN201910290104A CN109992217B CN 109992217 B CN109992217 B CN 109992217B CN 201910290104 A CN201910290104 A CN 201910290104A CN 109992217 B CN109992217 B CN 109992217B
- Authority
- CN
- China
- Prior art keywords
- read
- write request
- write
- sequence length
- sequential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003908 quality control method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 5
- 230000002035 prolonged effect Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种服务质量控制方法,包括:根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度;判断第一读写请求顺序长度是否大于预设阈值;若是,则读写请求确定为顺序读写;若否,则读写请求确定为随机读写;根据顺序读写或随机读写进行服务质量控制。可见,本申请避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,易造成控制过度而降低***性能;提高了服务质量,改善用户体验。本申请同时还提供了一种服务质量控制装置、电子设备和计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及服务质量技术领域,特别涉及一种服务质量控制方法、装置、电子设备和计算机可读存储介质。
背景技术
在计算机存储区域网络(SAN)类型的存储***中,由于IO栈上各层资源以及整体的性能是有限的,包括前端主机通道如Fibre Channel或Iscsi网络、缓存Cache、CPU处理能力、后端磁盘性能,而一台存储***支持多个主机访问,主机之间共享和争夺存储资源,为了避免资源抢占和分配不均,导致不同主机或不同逻辑单元上的应用性能极度不均,存储***提供了服务质量QOS相关的控制功能。SAN存储***的服务质量控制的一般方法是以主机、逻辑单元为对象,限制IOPS、MBPS,这在主机IO特征(IOPS、MBPS、块大小、随机顺序比例)稳定情况下是能满足要求的,但是,存储***支持的随机、顺序的读写性能是不同的,尤其在机械盘***上随机、顺序读写性能相差很大,一个机械盘随机读写IOPS在100到300之间,而顺序读写可在10000以上,也就是随机、顺序读写性能相差达到几十、上百倍,而对于同一个逻辑单元LU,在主机端可能会将它分成多个逻辑分区用于不同的应用,或者同一个分区给多个应用共享存储,这会导致主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此不能保证服务质量,易造成控制过度而降低***性能。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种服务质量控制方法、服务质量控制装置、电子设备和计算机可读存储介质,通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成保证服务质量低进而,易造成控制过度而降低***性能;提高了服务质量,改善用户体验。其具体方案如下:
本申请提供一种服务质量控制方法,包括:
根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;
判断所述第一读写请求顺序长度是否大于预设阈值;
若是,则所述读写请求确定为顺序读写;若否,则所述读写请求确定为随机读写;
根据所述顺序读写或所述随机读写进行服务质量控制。
优选地,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度,包括:
根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;
当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。
优选地,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度之前,还包括:
将所述读写请求的数据信息记录在所述哈希数组中。
优选地,根据所述顺序读写或所述随机读写进行服务质量控制,包括:
根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;
判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;
若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;
若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。
本申请提供一种服务质量控制装置,包括:
长度确定模块,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;
判断模块,用于判断所述第一读写请求顺序长度是否大于预设阈值;
识别模块,用于若是,则确定所述读写请求为顺序读写;若否,则确定所述读写请求为随机读写;
控制模块,用于根据所述顺序读写或所述随机读写进行服务质量控制。
优选地,所述长度确定模块包括:
查找单元,用于根据所述读写请求的所述第一IO起始地址查找所述哈希数组中的各个所述元素;
长度确定单元,用于当所述第一IO起始地址等于所述哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定所述第一读写请求顺序长度是所述第二读写请求顺序长度与所述读写请求对应的原始读写请求顺序长度的和。
优选地,还包括:
记录模块,用于将所述读写请求的数据信息记录在所述哈希数组中。
优选地,所述控制模块包括:处理单元,用于根据读写类型将与所述读写请求对应的读写数据进行缓存处理获得缓存数据;其中,所述读写类型包括所述顺序读写和所述随机读写;
判断单元,用于判断所述读写类型对应的读写请求数量是否为期望阈值的倍数;其中,所述期望阈值记为Freq;
应答单元,用于若是所述期望阈值的倍数,则根据所述读写请求的接收时间和对应的所述读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长所述等待时间后应答所述读写请求的结果;若不是所述期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答所述读写请求的结果;其中所述第m个读写请求为上一个所述期望阈值倍数的读写请求。
本申请提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述服务质量控制方法的步骤。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述服务质量控制方法的步骤。
本申请提供一种服务质量控制方法,包括:根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定所述读写请求的第一读写请求顺序长度;判断所述第一读写请求顺序长度是否大于预设阈值;若是,则所述读写请求确定为顺序读写;若否,则所述读写请求确定为随机读写;根据所述顺序读写或所述随机读写进行服务质量控制。可见,本申请通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,易造成服务质量控制不灵活,易造成控制过度或者不满足随机顺序两类业务性能需求;提高了服务质量,改善用户体验。本申请同时还提供了一种服务质量控制装置、电子设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种服务质量控制方法的流程图;
图2为本申请实施例所提供的另一种服务质量控制方法的流程图;
图3为本申请实施例所提供的另一种服务质量控制方法的流程图;
图4为本申请实施例提供的一种服务质量控制装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此不能保证服务质量,造成控制过度而降低***性能。基于上述技术问题,本实施例提供一种服务质量控制方法,通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成保证服务质量低进而,易造成控制过度而降低***性能;提高了服务质量,改善用户体验。具体请参考图1,图1为本申请实施例所提供的一种服务质量控制方法的流程图,具体包括:
S101、根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
本步骤的目的是通过写请求的第一IO起始地址查找哈希数组中的各个元素,进而确定读写请求的第一读写请求顺序长度。本实施例接收到读写请求后,根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度,具体的,在接收到读写请求后,则根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
哈希数组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。
查找哈希数组IO_TABLE中的元素Index对应的链表,对每个链表元素记性操作。若当前时间比该元素的Last_Req_Time晚于预设的时长,则删除该元素;若该读写请求的Req_Id比该元素的Last_Req_Id大于预设的阈值,则删除该元素。获得第一读写请求顺序长度,其中,第一读写请求顺序长度可以是第一读写请求顺序长度原始长度,也可以是通过检测哈希数组中的元素将与当前读写请求的重叠或者相邻的数据进行关联后的长度,具体可以根据实际情况进行设定,只要满足本实施例的目的即可。
S102、判断第一读写请求顺序长度是否大于预设阈值。
本实施例不对预设阈值进行限定,用户可根据实际需求设定。预设阈值主要用来区分顺序读写还是随机读写,当第一读写请求顺序长度小于预设阈值时是随机读写,当大于预设阈值时是顺序读写。
S103、读写请求确定为顺序读写。
当第一读写请求顺序长度大于预设阈值时,则执行步骤S103读写请求确定为顺序读写。
S104、读写请求确定为随机读写。
当第一读写请求顺序长度小于预设阈值时,则执行步骤S104读写请求确定为顺序读写。
S105、根据顺序读写或随机读写进行服务质量控制。
根据顺序读写或者随即读写进行服务质量控制,此时,由于区分了随机和顺序两种读写类型,有利于***读写性能的提高,提高读写应答的能力,进而提高了服务质量。
基于上述技术方案,本实施例通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成控制不准确;本实施例提高了服务质量,改善用户体验。
基于上述实施例,本实施例提供一种服务质量控制方法,具体请参考图2,图2为本申请实施例所提供的另一种服务质量控制方法的流程图,包括:
S201、根据读写请求的第一IO起始地址查找哈希数组中的各个元素。
S202、当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
具体的,当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
计算若IO_Start+IO_Size等于本次读写请求的起始地址Req_Start,则修改如下元素字段,其中,IO_Start+IO_Size是第二IO起始地址与第二读写请求顺序长度的和:
IO_Size=IO_Size+Req_Size,
IO_Count=IO_Count+1,
Last_Req_Id=Req_Id,
Last_Req_Time=当前时间;
其中,Req_Size是本次读写请求的长度即读写请求顺序长度,Req_Id是当前的读写请求序号,Last_Req_Id是最后一个请求序号,IO_Count是当前请求的数量,Last_Req_Time是最后一个请求的时间。
进一步的,若未找到一段连续的IO请求,则将本次读写请求信息***该链表,
IO_Size=Req_Size,
IO_Count=1,
Last_Req_Id=Req_Id,
Last_Req_Time=当前时间,
IO_Start=Req_Start;
其中,Req_Size是本次读写请求的长度即读写请求顺序长度,Req_Id是当前的读写请求序号,Last_Req_Id是最后一个请求序号,IO_Count是当前请求的数量,Last_Req_Time是最后一个请求的时间,Req_Start本次读写请求的起始地址。
S203、判断第一读写请求顺序长度是否大于预设阈值。
S204、读写请求确定为顺序读写。
步骤S203后,若第一读写请求顺序长度大于预设阈值,则执行步骤S204读写请求确定为顺序读写。
S205、读写请求确定为随机读写。
步骤S203后,若第一读写请求顺序长度不大于预设阈值,则执行步骤S205读写请求确定为随机读写。
S206、根据顺序读写或随机读写进行服务质量控制。
确定读写请求的类型后,根据顺序读写或随机读写进行服务质量控制。
基于上述技术方案,本实施例通过利用根据读写请求的第一IO起始地址查找哈希数组中的各个元素;当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和来确定第一读写请求顺序长度,将读写请求对应的信息进行合并整理,进而根据顺序读写或随机读写进行服务质量控制,提高服务质量,改善用户体验。
基于上述实施例,本实施例提供一种服务质量控制方法,具体请参考图3,图3为本申请实施例所提供的另一种服务质量控制方法的流程图,包括:
S301、根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度。
S302、判断第一读写请求顺序长度是否大于预设阈值。
S303、读写请求确定为顺序读写。
步骤S302后,若第一读写请求顺序长度大于预设阈值,则执行步骤S303读写请求确定为顺序读写。
S304、读写请求确定为随机读写。
步骤S302后,若第一读写请求顺序长度不大于预设阈值,则执行步骤S304读写请求确定为随机读写。
S305、根据读写类型将与读写请求对应的读写数据进行缓存处理获得缓存数据;其中,读写类型包括顺序读写和随机读写。
按照读写类型进行缓存处理,获得缓存数据。具体的,在接收到每个读写请求时记录该读写请求的接收时间,并记录所属随机读写或者顺序读写类型的历史的最后Freq+1个的读写请求的接收时间和最后Freq个读写请求的总的请求长度即Last_Freq_Size。Freq是预设的每处理Freq个IO就进行延时控制的期望阈值,并使0.001秒<=Freq/IOPS限制值<=0.01秒。
S306、判断读写类型对应的读写请求数量是否为期望阈值的倍数;其中,期望阈值记为Freq。
S307、判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
步骤S306后,若不是期望阈值的倍数,则执行步骤S307判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
S308、根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果。
步骤S306后,若是期望阈值的倍数,则执行步骤S308根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果。
具体的,按随机读写或顺序读写类型累计该类型的读写请求数量,正常处理该读写请求,直到发送结果(即SCSI_RESPONSE)前,判断读写类型对应的读写请求数量是否为期望阈值的倍数,来确定应答。
若该类型的读写请求数量并非Freq的倍数,则判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。值得注意的是,在延时等待期间,其他未应答的读写请求也挂起等待而不应答。
若是期望阈值的倍数,则根据读写请求的接收时间和对应的读写类型的倒数第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)。
基于上述技术方案,本实施例通过利用哈希数组确定读写请求的第一读写请求顺序长度,根据第一读写请求顺序长度与预设阈值的关系来区分读写的类型,进而根据读写类型来进行服务质量控制,避免了相关技术中主机对同一个逻辑单元可能进行随机、顺序两种不同的读写方式,因此造成控制不准确;本实施例提高了服务质量,改善用户体验。
下面对本申请实施例提供的一种服务质量控制装置进行介绍,下文描述的服务质量控制装置与上文描述的服务质量控制方法可相互对应参照,相关模块均设置于中,参考图4,图4为本申请实施例所提供的一种服务质量控制装置的结构示意图,包括:
长度确定模块401,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素,以便确定读写请求的第一读写请求顺序长度;
判断模块402,用于判断第一读写请求顺序长度是否大于预设阈值;
识别模块403,用于若是,则确定读写请求为顺序读写;若否,则确定读写请求为随机读写;
控制模块404,用于根据顺序读写或随机读写进行服务质量控制。
在一些具体的实施例中,长度确定模块401包括:
查找单元,用于根据读写请求的第一IO起始地址查找哈希数组中的各个元素;
长度确定单元,用于当第一IO起始地址等于哈希数组中的元素的第二IO起始地址与第二读写请求顺序长度的和时,确定第一读写请求顺序长度是第二读写请求顺序长度与读写请求对应的原始读写请求顺序长度的和。
在一些具体的实施例中,还包括:
记录模块,用于将读写请求的数据信息记录在哈希数组中。
在一些具体的实施例中,控制模块504包括:
处理单元,用于根据读写类型将与读写请求对应的读写数据进行缓存处理获得缓存数据;其中,读写类型包括顺序读写和随机读写;
判断单元,用于判断读写类型对应的读写请求数量是否为期望阈值的倍数;其中,期望阈值记为Freq;
应答单元,用于若是期望阈值的倍数,则根据读写请求的接收时间和对应的读写类型的倒数第Freq个读写请求的接收时间确定等待时间,延长等待时间后应答读写请求的结果;若不是期望阈值的倍数,判断第m个读写请求是否完成延时等待,若未完成,则进行延时等待,若完成,则应答读写请求的结果;其中第m个读写请求为上一个期望阈值倍数的读写请求。
由于服务质量控制装置部分的实施例与服务质量控制方法部分的实施例相互对应,因此服务质量控制装置部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
下面对本实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的服务质量控制方法可相互对应参照。
本实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述服务质量控制方法的步骤。
由于电子设备部分的实施例与服务质量控制方法部分的实施例相互对应,因此电子设备部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
下面对本实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的服务质量控制方法可相互对应参照。
本实施提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述服务质量控制方法的步骤。
由于计算机可读存储介质部分的实施例与服务质量控制方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见服务质量控制方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种服务质量控制方法、服务质量控制装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (8)
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任一项所述服务质量控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290104.3A CN109992217B (zh) | 2019-04-11 | 2019-04-11 | 一种服务质量控制方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290104.3A CN109992217B (zh) | 2019-04-11 | 2019-04-11 | 一种服务质量控制方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992217A CN109992217A (zh) | 2019-07-09 |
CN109992217B true CN109992217B (zh) | 2020-05-29 |
Family
ID=67133279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290104.3A Active CN109992217B (zh) | 2019-04-11 | 2019-04-11 | 一种服务质量控制方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992217B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905345B (zh) * | 2021-02-23 | 2024-04-05 | 深圳市网心科技有限公司 | 任务调配方法、分布式存储***、服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052279A (zh) * | 2017-11-23 | 2018-05-18 | 深圳市江波龙电子有限公司 | 一种提升闪存性能的方法、装置、设备及存储介质 |
CN109460186A (zh) * | 2018-11-02 | 2019-03-12 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读性能的方法及其*** |
CN109582515A (zh) * | 2018-12-03 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种硬盘检测方法、***及电子设备和存储介质 |
-
2019
- 2019-04-11 CN CN201910290104.3A patent/CN109992217B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052279A (zh) * | 2017-11-23 | 2018-05-18 | 深圳市江波龙电子有限公司 | 一种提升闪存性能的方法、装置、设备及存储介质 |
CN109460186A (zh) * | 2018-11-02 | 2019-03-12 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读性能的方法及其*** |
CN109582515A (zh) * | 2018-12-03 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种硬盘检测方法、***及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109992217A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547476B (zh) | 用于数据存储***的方法和装置 | |
CN109756230B (zh) | 数据压缩存储方法、数据压缩方法、装置、设备及介质 | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
US10417137B2 (en) | Flushing pages from solid-state storage device | |
WO2017185579A1 (zh) | 一种数据存储方法及装置 | |
EP2711841A1 (en) | Data processing method, device and system based on block storage | |
EP3252609A1 (en) | Cache data determination method and device | |
WO2013097618A1 (zh) | 存储虚拟化的装置、存储***及数据存储方法及*** | |
US9411519B2 (en) | Implementing enhanced performance flash memory devices | |
CN110688062B (zh) | 一种缓存空间的管理方法及装置 | |
JP2006351004A (ja) | 携帯端末機のメモリ管理方法 | |
CN107430551B (zh) | 数据缓存方法、存储控制装置、及存储设备 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN107291399B (zh) | 一种基于spdk的后端存储方法、装置及*** | |
CN108874324B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
US20090043960A1 (en) | Virtual library apparatus, virtual library system, and logical volume copying method | |
US9612746B1 (en) | Allocation method for meeting system performance and application service level objective (SLO) | |
JPWO2017006675A1 (ja) | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム | |
CN110045924B (zh) | 分级存储方法、装置、电子设备及计算机可读存储介质 | |
CN109992217B (zh) | 一种服务质量控制方法、装置、电子设备和存储介质 | |
CN108132759B (zh) | 一种文件***中管理数据的方法和装置 | |
CN110647476B (zh) | 一种固态硬盘写数据的方法、装置、设备及存储介质 | |
JPWO2013046342A1 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
JP2021135538A (ja) | ストレージ制御装置及びストレージ制御プログラム | |
CN108334457B (zh) | 一种io处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |