CN101981539B - 使用优先级确定是否对指向存储器的输入/输出(i/o)请求进行排队 - Google Patents

使用优先级确定是否对指向存储器的输入/输出(i/o)请求进行排队 Download PDF

Info

Publication number
CN101981539B
CN101981539B CN200980110957.9A CN200980110957A CN101981539B CN 101981539 B CN101981539 B CN 101981539B CN 200980110957 A CN200980110957 A CN 200980110957A CN 101981539 B CN101981539 B CN 101981539B
Authority
CN
China
Prior art keywords
priority
request
concurrent
threshold value
specified
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.)
Expired - Fee Related
Application number
CN200980110957.9A
Other languages
English (en)
Other versions
CN101981539A (zh
Inventor
马修·J·卡洛斯
布鲁斯·麦克纳特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101981539A publication Critical patent/CN101981539A/zh
Application granted granted Critical
Publication of CN101981539B publication Critical patent/CN101981539B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

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)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)

Abstract

提供了一种方法、系统、产品以及计算机程序,用于使用优先级确定是否对指向存储器的输入/输出(I/O)请求进行排队。测定指向存储器的并发请求的最大数目。所测定的并发请求的最大数目被用于确定针对指定的优先级的阈值。响应于确定针对所指定的优先级的并发请求的当前数目不超过所确定的指定的优先级的阈值,允许随后的指向存储器的具有指定的优先级的请求继续进行。允许随后的指向所述存储器的具有比所指定的优先级高的优先级的请求继续进行。响应于确定针对所指定的优先级的并发请求的当前数目超过总的阈值,将随后的指向所述存储器的具有所指定的优先级的请求排入队列中。

Description

使用优先级确定是否对指向存储器的输入/输出(I/O)请求进行排队
技术领域
本发明涉及一种方法、系统和产品,用于使用优先级确定是否对指向存储器的输入/输出(I/O)请求进行排队。
背景技术
存储协议可以指定这样的条件,在此条件下应用程序分配优先级给应用程序为存储装置生成的输入/输出(I/O)请求,以便当确定如何管理I/O请求时,处理I/O请求的控制器或者服务器可以利用该优先级。近期对小型计算机系统接口(SCSI)的增强允许主机应用通过优先级值指定I/O传送中任务的相对的调度重要性。对具有不同任务优先级的一组任务的处理将使得具有较高优先级的任务的子集总计(in aggregate)比在相同的条件(但是其中所有的任务优先级相等)下递交(submit)同一组任务的情况下的相同子集更快地返回状态。
在本技术领域中,需要用于利用分配给I/O请求的优先级来改进对指向公共存储器的I/O请求的处理的改进的技术。
发明内容
提供了一种方法、系统、产品以及计算机程序,用于使用优先级确定是否对指向存储器的输入/输出(I/O)请求进行排队。在本发明的优选实施例中,对指向存储器的并发请求的最大数目进行测定(measure)。所测定的并发请求的最大数目被用于确定针对所指定的优先级的阈值。响应于确定针对所指定的优先级的并发请求的当前数目没有超过所确定的针对所指定的优先级的阈值,随后的指向存储器的具有所指定的优先级的请求被允许继续进行(proceed)。随后的指向存储器的具有比指定的优先级高的优先级的请求被允许继续进行。响应于确定针对所指定的优先级的并发请求的当前数目超过总的阈值,随后的指向存储器的具有所指定的优先级的请求被排入队列中。
在另一实施例中,做出用以对具有指定的优先级的请求进行排队的指示,并且做出用以不对具有比指定的优先级高至少一个优先级的请求进行排队的指示。接收指向存储器的具有优先级的请求。响应于确定没有用以对具有接收到的请求的优先级的请求进行排队的指示,此请求被传送到存储器。响应于确定用以对具有接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有接收到的请求优先级的并发请求的当前数目超过接收到的请求的优先级的阈值,将接收到的请求排入队列中。
在另一实施例中,响应于确定对具有接收到的优先级的请求进行排队的指示,以及响应于确定具有接收到的请求的优先级的并发请求的当前数目没有超过接收到的请求的优先级的阈值,接收到的请求被传送到存储器。
在另一实施例中,确定在先前测定周期(period)期间接收的请求的最高优先级。做出对针对每个比所确定的最高优先级低的优先级的请求进行排队的指示,并且做出不对针对每个比所确定的最高优先级高的优先级的请求进行排队指示。所测定的并发请求的最大数目被用于确定每个比所确定的最高优先级低的优先级的阈值。
在另一实施例中,测定并发请求的最大数目包括测定针对每个优先级的并发请求的最大数目。
在另一实施例中,在测定周期期间,对并发请求的最大数目进行测定。测定针对每个优先级的并发请求的最大数目包括:响应于在测定周期期间接收到针对一个优先级中的请求,递增(increment)针对该一个优先级的并发请求的数目;以及响应于在测定周期期间接收到针对一个优先级中的请求,递减(decrement)针对该一个优先级的并发请求的数目。针对每个优先级的并发请求的最大数目包括在测定周期期间测定的针对每个优先级的并发请求的最大数目。
在另一实施例中,使用所测定的并发请求的最大数目确定所指定的优先级的阈值包括:使用所述优先级的并发请求的最大数目确定所述优先级的阈值,所述优先级的请求将被排队。
在另一实施例中,基于针对每个指定的优先级而允许的请求的最小数目,进一步确定优先级阈值。
在另一实施例中,在完成的测定周期期间,测定针对每个优先级的并发请求的最大数目。在每个完成的测定周期之后,调整用于排队的优先级的阈值。
在另一实施例中,使用所测定的并发请求的最大数目确定指定的优先级的阈值包括:基于针对至少两个优先级而观测到的并发请求的最大数目、以及针对所述至少两个优先级而允许的请求的最小数目之中的最小值,确定每个优先级的阈值。
在另一实施例中,接收到具有指定的优先级的请求完成的确认(acknowledgment)。响应于接收到确认,关于具有指定的优先级的并发请求的当前数目是否低于指定的优先级的阈值而进行确定。响应于确定具有指定的优先级的并发请求的当前数目低于指定的优先级的阈值,至少一个具有指定的优先级的排队的请求被处理。
附图说明
现在将参考如以下图中图示的优选实施例,仅仅通过举例来描述本发明:
图1图示了计算环境的实施例。
图2图示了用于管理I/O请求的管理信息的实施例。
图3图示了用于确定是否指示对指定的优先级的I/O请求进行排队的操作的实施例。
图4图示了用于确定是否对接收到的I/O请求进行排队的操作的实施例。
图5图示了用于处理I/O请求完成的确认的操作的实施例。
具体实施方式
图1图示了实施本发明优选实施例的各方面的计算环境。一个或多个主机2每个包括一个或者多个应用4,所述应用4生成通过服务器8到存储器6的输入/输出(I/O)请求。应用4(诸如数据库应用、商业应用等)可以为发送给服务器8的I/O请求分配优先级等级。所述优先级可以指定数字或者其他优先级值,其是优先级方案的一部分。这样,不同主机2上的不同应用4可以使用相同的优先级指派(designation)协议,此协议可以被指定作为工业标准的一部分。
主机2可以经由网络10(诸如局域网(LAN)、存储区域网络(SAN)、广域网(WAN)、无线网络等)与服务器8进行通信。或者,主机2可以通过诸如外设组件互连接口(PCI)总线的总线接口与服务器8进行通信。主机2、存储器6以及服务器8可以被容纳在分开的机器中,或者包含在同一个机器中,经由一个或者多个总线接口连接。服务器8可以包括本领域中已知的适合的存储管理系统,诸如存储控制器、服务器、企业存储服务器等。存储器6可以包括本领域中已知的适合的存储系统,诸如直接存取存储装置(DASD)、简单磁盘捆绑(JBOD)、独立冗余磁盘阵列(RAID)、虚拟装置、磁带存储器、光盘存储器或者本领域中已知的任何其他存储系统。主机2可以包括本领域中已知的任何合适的计算装置,诸如工作站、桌面型计算机、服务器、大型机、手持计算机、电话装置等。主机2包含生成I/O请求的应用程序。
服务器8包括处理器12(或者多个处理器)以及由一个或者多个易失性存储装置和/或非易失性存储装置构成的存储器14。该存储器包含:高速缓存16,用于缓冲指向存储器6的I/O请求以及数据更新;I/O管理器18,其管理来自主机2的指向存储器6的I/O请求;中优先级队列20;低优先级队列22;以及I/O管理信息24,其被I/O管理器18用于确定是将I/O请求排入队列20和22,还是允许请求继续进行。
I/O管理器18可以在加载到存储器14中的软件中实施,所述软件由处理器12执行。或者,I/O管理器18可以在服务器8中设置的硬件芯片中实施。
图2图示了管理信息24的实施例,其可以包含对于当前管理周期时间间隔而测定的、针对每个优先级等级的并发未决(outstanding)I/O请求的最大数目。因此,在管理周期期间,记录针对每个优先级等级(例如高、中、低)的在不同时间的未决的并发请求的数目,以便在此管理周期的结尾,能够为每个优先级等级确定在管理周期期间的并发请求的最大数目。并发请求的数目包括接收到的没有完成的(即,对于磁盘而未决的或者被排队的)I/O请求的数目。当在管理时间间隔期间接收到的未决并发低优先级请求56的当前数目超过作为并发低优先级I/O请求的最大数目的低优先级阈值54时,低优先级队列指示符52指示I/O管理器18是否对在管理时间间隔期间接收到的低优先级请求进行排队。当在管理时间间隔期间接收到的未决并发中优先级请求62的当前数目超过I/O请求的中优先级阈值60时,中优先级队列指示符58指示I/O管理器18是否对在管理时间间隔期间接收到的中优先级请求进行排队。在可替代的实施例中,不同的信息可以被维持(maintain)在管理信息24中。
在一个实施例中,低、中和高优先级的指派可以对应于由主机应用4设置的单个优先级值或者优先级值的范围,如所述I/O管理器18所说明的。例如,I/O管理器18可以将数字的优先级值映射到一个低、中或者高优先级类别。在另外的实施例中,可以有一个或者多于两个的优先级队列来对另外的优先级等级的请求进行排队。
在一个实施例中,可以在每个磁盘的基础上维持对于图2维持的信息和阈值。因此,如果存储器6包括多个互连的硬盘驱动器,则图2的阈值将被乘以磁盘数目,以确定应用于多磁盘存储器的阈值。
图3图示了由I/O管理器18执行的如下操作的实施例:每个管理时间间隔更新I/O管理信息24,以基于在最近完成的管理时间间隔期间测定的并发I/O请求(即,低、中和高)的最大数目,确定需要的对I/O请求进行排队的范围。当启动了(在方框100)I/O处理时,I/O管理器18启动(在方框102)被设置为在诸如几秒钟的时间周期后期满的管理时间间隔,并且清除所有队列指示符52和58。当时间间隔期满(在方框104)时,I/O管理器18记录(在方框106)区间数据,其包含在先前完成的管理时间间隔期间的最高优先级(P)请求以及每个优先级(例如,低、中和高)的高水位标记(water mark)(即,并发请求的最大数目)。在管理时间周期期间,当接收到具有任何优先级的新请求时,I/O管理器18递增并发I/O请求的总数,并且当I/O请求已经完成时,递减并发I/O请求的总数。在管理时间间隔期间的并发I/O请求的数目是作为在该时间周期期间未决的I/O请求的最大数目的高水位标记。
I/O管理器为在上个管理间隔期间接收到的具有高于或者等于最大优先级请求(P)的任何队列清除(在方框108)队列指示符52和58。设置(在方框110)具有低于最大优先级请求(P)的优先级的队列指示符52和58以指示排队。对于被设置了指示符的每个队列,I/O管理器18基于在上个管理间隔期间接收到的针对不同优先级的最大并发请求,调整(在方框112)允许的并发请求的阈值54和60。以下讨论的方程(1)和(2)提供了用于调整低优先级阈值54和中优先级阈值60的实施例。在对要被排队的优先级的阈值进行调整后,I/O管理器18通过返回至方框104以等待下个管理间隔的完成,启动(在方框114)对操作的附加重复(iteration)。
通过图3的操作,I/O管理器18在时间间隔完结时,确定是否对不同优先级等级的I/O请求进行排队,或者是否终止排队并且完成处理任何先前排队的I/O请求。此外,I/O管理器基于在先前的时间间隔期间接收到的针对每个优先级等级的请求的最大数目,调整将在下个测定周期期间排队的每个优先级等级的排队阈值。为了调整排队阈值,I/O管理器18可以进一步考虑如下讨论的针对每个优先级等级的允许的请求的最小数目。虽然图3示出了确定是否允许两个优先级等级(低和中)的排队,但是确定和队列指示符可以被提供给多于两个优先级等级。
图4图示了由I/O管理器18执行的用于在管理时间间隔期间处理I/O请求的操作的实施例。在接收到(在方框150)具有指定的优先级(例如,低、中、高)的I/O请求时,I/O管理器18递增(在方框152)针对指定的优先级56、62或者64的请求的数目。如果(在方框154)所指定的优先级为高,那么I/O请求被允许继续进行(在方框156)。如果(在方框154)请求不是高优先级,例如,低或者中,并且如果(在方框158)没有为所指定的优先级(低或者中)设置(指示不排队)优先级队列指示符52或者58,那么控制继续进行到方框156以允许I/O请求继续进行。如果(在方框158)优先级队列指示符52或者58被设置(指示对接收到的I/O请求而排队),并且如果(在方框160)具有指定的优先级56或62的并发未决请求的数目超过所指定的优先级的阈值54或者60,那么将所接收的I/O请求排入(在方框162)所指定的优先级队列20或22中。否则,如果(在方框160)具有指定的优先级56或62的并发未决请求的数目没有超过所指定的优先级的阈值54或者60,那么I/O请求被允许继续进行。针对优先级等级的并发I/O请求包括:接收到的未完成的或者排在优先级等级队列20和22中的I/O请求的数目。
图5图示了由I/O管理器18执行的用于处理相对于存储器6已完成具有优先级的I/O请求的确认的操作的实施例。在接收到(在方框200)该确认时,I/O管理器18递减(在方框202)针对已完成的请求的指定的优先级的并发请求的数目。I/O管理器18可以响应于确定具有指定的优先级的并发请求的当前数目低于指定的优先级的阈值,进一步处理(在方框204)排队的请求。排队的请求可以被处理,直到再次到达针对所述优先级等级的并发请求的指定的优先级的阈值为止。
在一个实施例中,具有最高优先级等级的请求总是被允许继续进行,并且关于是否对低或者中优先级请求以及这些请求的排队阈值进行排队而做出确定。在可替代的实施例中,高优先级请求也可以接收磁盘服务。此外,可存在用于多于两个优先级的附加优先级等级队列。
在一个实施例中,为了确定低优先级阈值54和中优先级阈值60,可以使用以下的数学方程:
U_hm=min((T_h+T_m),(HWM_h+HWM_m))           (1)
U_lh=min((T_h+T_l),(HWM_h+min(T_l,HWM_l))) (2)
在方程(1)和(2)中,T_h、T_m和T_l分别包括针对高、中以及低优先级而允许的并发请求的最小数目以避免匮乏(starvation),即,具有低优先级的请求不被处理的情况。在这些操作目标之上的并发的中和低优先级请求可以在现在给出的条件下经受排队。然而,至少允许每个类型的最小数目的并发请求。在这个实施例的示例中,当在每个磁盘的基础上表示时,数量T_h、T_m和T_l可以分别具有值2.5、1.0和0.5。HWM_h包括在先前管理周期期间测定的高优先级请求的高水位标记,其包括在先前管理周期期间观测到的高优先级并发请求的最大数目。类似地,HWM_m和HWM_l分别包括在先前管理周期期间测定的中和低优先级请求的高水位标记,其包括在先前管理周期期间观测到的中和低并发请求的最大数目。
方程(1)计算出的数量U_hm包括高和中优先级I/O的并发请求的分配。在方程(1)和(2)的实施例中,所述方法是对低优先级请求进行排队,以便允许(accommodate)高和中优先级请求,直至(up to)被分配的等级。因此,在这个实施例中,低优先级队列的阈值54被设置为T_sum-U_hm,此处T_sum被定义为T_h+T_m+T_l。更直观地,此阈值设置的实际结果(net effect)可以被描述如下:经受排队的并发请求的总数被限制为T_sum的最大值,如果这能够通过设置关于接收磁盘服务的并发低优先级请求的数目的不少于T_l的阈值来实现。
方程(2)计算出的数量U_lh包括高和低优先级I/O的并发请求的分配。在方程(1)和(2)的实施例中,对中优先级请求进行排队,以便允许高和低优先级请求,直至被分配的等级。因此,在这个实施例中,中优先级队列的阈值60被设置为T_sum-U_lm。这样,此阈值设置的实际结果能够被描述如下:接收磁盘服务的并发请求的总数被限制为T_sum的最大值,如果这能够通过设置关于接收磁盘服务的并发低优先级请求的数目的为T_l的阈值、以及关于接收磁盘服务的并发中优先级请求的数目的不少于T_m的阈值来实现。
使用以上确定的数量U_lh和U_mh,并且如果P是在先前管理周期中观测到的最高优先级请求,则关于对于每个优先级等级如何继续进行的确定能够被计算(对于Q=“高”、“中”和“低”)如下:
如果Q>=P,那么不对并发磁盘请求进行限制;
否则如果Q=“中”,那么限制并发磁盘请求的数目(在每个磁盘的基础上)为T_sum-U_hl;
否则如果Q=“低”,那么限制并发磁盘请求的数目(在每个磁盘的基础上)为T_sum-U_hm。
通过以上方程,针对不同优先级的并发请求的最大数目被用于确定每个优先级的排队阈值。此外,针对每个优先级而允许的请求的最小数目也可以在设置排队阈值时被考虑,以确保最小数目的针对每个优先级的请求被处理。在以上实施例之一中,基于(1)针对至少两个优先级而观测到的并发请求的最大数目、以及(2)针对所述至少两个优先级而允许的请求的最小数目的最小值,对每个优先级阈值进行调整。考虑到不同的因素,其他方程也可以用于基于将针对不同优先级的并发请求的最大数目维持在期望的范围内,调整排队阈值。
通过所描述的实施例,基于在先前管理时间间隔期间发生的诸如并发I/O请求的总数的I/O活动(activity),关于是否对I/O请求进行排队而做出确定。在另外的实施例中,对具有指定的优先级的I/O请求进行排队的优先级特定阈值可以被调整,以增加针对指定的优先级的排队的数量,以减小低于阈值的I/O请求的总数。
附加实施例细节
所描述的操作可以被实施为使用标准编程和/或工程技术来制造软件、固件、硬件或者它们的任何组合的方法、设备或者产品。所描述的操作可以被实施为“计算机可读存储介质”中维持的代码,其中处理器可以从计算机可读存储介质读取并且执行所述代码。计算机可读存储介质可以包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD_ROM、DVD、光盘等)、易失性和非易失性存储装置(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)等的存储介质。实施所描述的操作的代码还可以在硬件装置(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实施的硬件逻辑中实施。另外,实施所描述的操作的代码可以在“传送信号”中实施,其中传送信号可以通过空间或者通过传送介质(例如,光纤、铜线等)传播。代码或者逻辑被编码在其中的传送信号还可以包括无线信号、卫星传送、无线电波、红外信号、蓝牙等。“产品”可以包括传送站和/或接收站,用于传送和接收代码或者逻辑被编码在其中的传送信号,其中在接收和传送站或装置中,传送信号中编码的代码或者逻辑可以被编码并存储在硬件或者计算机可读存储介质中。“产品”包括其中可以实施代码或逻辑的装置,诸如计算机可读存储介质、硬件装置、和/或传送器或接收器。本领域的技术人员将意识到:可以在不背离本发明的范畴的情况下对此配置进行很多修改,以及所述产品可以包括本领域中已知的适当的信息承载介质。
在所描述的实施例中,为存取共享存储器中的存储地址的处理而改变存取参数。在可替代的实施例中,可以为除了存储地址(诸如存储装置中的地址)外的计算机资源以及其它计算机资源监控存取模式。
术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“所述实施例”、“一个或者多个实施例”、“一些实施例”以及“一个实施例”意味着“本发明的一个或多个(而不是全部)实施例”,除非另外明确地指定。
术语“包含”、“包括”、“具有”和其变型意味着“包含但不限于”,除非另外明确地指定。
对项的列举的列表不意味着所述项中的任何或全部互相排斥,除非另外明确地指定。
术语“所述”表示“一个或者多个”,除非另外明确地指定。
互相通信的装置不需要处于持续的互相通信中,除非另外明确地指定。另外,互相通信的装置可以通过一个或者多个媒介物(intermediary)直接或者间接地通信。
具有多个互相通信的组件的实施例的描述不意味着要求所有这样的组件。相反地,多种可选组件被描述以说明本发明的各种可能的实施例。
此外,虽然处理步骤、方法步骤、算法等可以按顺序的次序进行描述,但是这些处理、方法和算法可以被配置为以交替的次序工作。换句话说,可以进行描述的步骤的任何序列或者次序不一定指示以该次序执行步骤的要求。这里描述的处理步骤可以以任何实际的次序执行。此外,某些步骤可以被同时执行。
当这里描述单个装置或者产品时,将易显然的是:可以使用多于一个的装置/产品(无论它们是否协作)来替代单个装置/产品。类似地,在这里描述多于一个装置或者产品的情况下(无论它们是否协作),将易显然的是:可以使用单个装置/产品来替代多于一个的装置或者产品,或者可以使用不同数目的装置/产品来替代所示数目的装置或者程序。装置的功能性和/或特征可以被不被明确地描述为具有这些功能性/特征的一个或者多个其它装置而可替代地包含。因此,本发明的其他实施例不需要包含所述设备本身。
图3、4和5所图示的操作示出了以特定次序发生的特定事件。在可替代的实施例中,特定操作可以不同的次序执行、修改或者移除。此外,步骤可以被添加到以上描述的逻辑中,并且仍然符合所描述的实施例。此外,这里描述的操作可以顺序地发生,或者可以并行地处理特定操作。此外,可以通过单个处理单元或者通过分布的处理单元,来执行操作。
为了说明和描述的目的,已经给出了前面对本发明的多个实施例的描述。其并非意在穷尽的或将本发明限于公开的精确形式。依据以上教导,很多修改和变型是可能的。其意在并非通过此详细的描述、而是通过此处所附权利要求来限制本发明的范围。以上详述、示例和数据提供了对本发明的组成的制造和使用的完整描述。因为可以在不背离本发明的精神和范围的情况下进行本发明的多个实施例,所以本发明存在于所附的权利要求中。

Claims (20)

1.一种使用优先级确定是否对指向存储器的输入/输出请求进行排队的方法,包括:
测定指向存储器的针对优先级的并发请求的多个最大数目;
使用所测定的并发请求的多个最大数目来确定针对所指定的优先级的阈值;
响应于确定针对所指定的优先级的并发请求的当前数目不超过所确定的针对所指定的优先级的阈值,允许随后的指向所述存储器的具有所指定的优先级的请求继续进行;
允许随后的指向所述存储器的具有比所指定的优先级高的优先级的请求继续进行;
响应于确定针对所指定的优先级的并发请求的当前数目超过针对所指定的优先级的总的阈值,将随后的指向所述存储器的具有所指定的优先级的请求排入队列中;
指示对具有所指定的优先级的请求进行排队;
指示不对具有比所指定的优先级高至少一个优先级的请求进行排队;
接收指向所述存储器的具有优先级的请求;
响应于确定没有用以对具有所接收到的请求的优先级的请求进行排队的指示,将所述请求传送到所述存储器;并且
响应于确定具有用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目超过针对所接收到的请求的优先级的阈值,将所接收到的请求排入所述队列中。
2.如权利要求1所述的方法,其中响应于确定具有用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目超过针对所接收到的请求的优先级的阈值,将所接收到的请求排入所述队列中还包括:
响应于确定具有用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目没有超过所接收到的请求的优先级的阈值,将所接收到的请求传送到所述存储器。
3.如权利要求1所述的方法,还包括:
确定在先前测定周期期间接收到的请求的最高优先级;
指示对针对每个比所确定的最高优先级低的优先级的请求进行排队;并且
指示不对针对每个比所确定的最高优先级高的优先级的请求进行排队,其中所测定的并发请求的最大数目被用于确定针对每个比所确定的最高优先级低的优先级的阈值。
4.如权利要求1所述的方法,其中测定所述并发请求的最大数目包括:测定针对每个优先级的并发请求的最大数目。
5.如权利要求4所述的方法,其中在测定周期期间测定所述并发请求的最大数目,并且其中,测定针对每个优先级的并发请求的最大数目包括:
响应于在所述测定周期期间接收到针对一个优先级的请求,递增针对所述一个优先级的并发请求的数目;并且
响应于在所述测定周期期间完成针对一个优先级的请求,递减针对所述一个优先级的并发请求的数目,其中针对每个优先级的并发请求的最大数目包括在所述测定周期期间测定的针对每个优先级的并发请求的最大数目。
6.如权利要求4所述的方法,其中使用所测定的并发请求的最大数目来确定针对所指定的优先级的阈值包括:使用针对所述优先级的并发请求的最大数目来确定针对其请求将被排队的优先级的阈值。
7.如权利要求6所述的方法,其中基于针对每个所指定的优先级而允许的请求的最小数目,进一步确定所述优先级的阈值。
8.如权利要求6所述的方法,其中在完成的测定周期期间测定针对每个优先级的并发请求的最大数目,并且其中在每个完成的测定周期后调整针对用以排队的优先级的阈值。
9.如权利要求4所述的方法,其中使用所测定的并发请求的最大数目来确定所指定的优先级的阈值包括:基于针对至少两个优先级而观测到的并发请求的最大数目以及针对所述至少两个优先级而允许的请求的最小数目之中的最小值,确定每个优先级的阈值。
10.如权利要求1所述的方法,还包括:
响应于接收到具有所指定的优先级的请求完成的确认,确定具有所指定的优先级的并发请求的当前数目是否低于所指定的优先级的阈值;并且
响应于确定具有所指定的优先级的并发请求的当前数目低于所指定的优先级的阈值,处理至少一个具有所指定的优先级的排队的请求。
11.一种使用优先级确定是否对指向存储器的输入/输出请求进行排队的系统,包括:
用于测定指向所述存储器的针对优先级的并发请求的多个最大数目的装置;
用于使用所测定的并发请求的多个最大数目来确定针对所指定的优先级的阈值的装置;
用于响应于确定针对所指定的优先级的并发请求的当前数目不超过所确定的针对所指定的优先级的阈值,允许随后的指向所述存储器的具有所指定的优先级的请求继续进行的装置;
用于允许随后的指向所述存储器的具有比所指定的优先级高的优先级的请求继续进行的装置;并且
用于响应于确定针对所指定的优先级的并发请求的当前数目超过总的阈值,将随后的指向所述存储器的具有所指定的优先级的请求排入队列中的装置;
用于指示对具有所指定的优先级的请求进行排队的装置;
用于指示不对具有比所指定的优先级高至少一个优先级的请求进行排队的装置;
用于接收指向所述存储器的具有优先级的请求的装置;
用于响应于确定没有用以对具有所接收到的请求的优先级的请求进行排队的指示,将所述请求传送到所述存储器的装置;并且
用于响应于确定用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目超过针对所接收到的请求的优先级的阈值,将所接收到的请求排入所述队列中的装置。
12.如权利要求11所述的系统,其中所述系统还包括:
用于响应于确定具有用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目超过针对所接收到的请求的优先级的阈值,将所接收到的请求排入所述队列中的装置进一步配置为:
响应于确定用以对具有所接收到的请求的优先级的请求进行排队的指示,以及响应于确定具有所接收到的请求的优先级的并发请求的当前数目没有超过所接收到的请求的优先级的阈值,将所接收到的请求传送到所述存储器。
13.如权利要求11到12中的任何一项所述的系统,其中所述系统还包括:
用于确定在先前测定周期期间接收到的请求的最高优先级的装置;
用于指示对针对每个比所确定的最高优先级低的优先级的请求进行排队的装置;并且
用于指示不对针对每个比所确定的最高优先级高的优先级的请求进行排队的装置,其中所测定的并发请求的最大数目被用于确定针对每个比所确定的最高优先级低的优先级的阈值。
14.如权利要求11所述的系统,其中用于测定指向所述存储器的针对优先级的并发请求的多个最大数目的装置进一步配置为:测定针对每个优先级的并发请求的最大数目。
15.如权利要求14所述的系统,其中用于测定指向所述存储器的针对优先级的并发请求的多个最大数目的装置进一步配置为:
响应于在所述测定周期期间接收到针对一个优先级的请求,递增针对所述一个优先级的并发请求的数目;并且
响应于在所述测定周期期间完成针对一个优先级的请求,递减针对所述一个优先级的并发请求的数目,其中针对每个优先级的并发请求的最大数目包括在所述测定周期期间测定的针对每个优先级的并发请求的最大数目。
16.如权利要求14所述的系统,其中使用所测定的并发请求的最大数目来确定针对所指定的优先级的阈值的装置进一步配置为:使用针对所述优先级的并发请求的最大数目来确定针对其请求将被排队的优先级的阈值。
17.如权利要求16所述的系统,其中使用所测定的并发请求的最大数目来确定针对所指定的优先级的阈值的装置进一步配置为:基于针对每个所指定的优先级而允许的请求的最小数目,进一步确定所述优先级阈值。
18.如权利要求16所述的系统,其中使用所测定的并发请求的最大数目来确定针对所指定的优先级的阈值的装置进一步配置为:在完成的测定周期期间测定针对每个优先级的并发请求的最大数目,并且其中在每个完成的测定周期后调整针对用以排队的优先级的阈值。
19.如权利要求14所述的系统,其中使用所测定的并发请求的最大数目来确定针对所指定的优先级的阈值的装置进一步配置为:基于针对至少两个优先级而观测到的并发请求的最大数目以及针对所述至少两个优先级而允许的请求的最小数目之中的最小值,确定每个优先级的阈值。
20.如权利要求11所述的系统,其中所述系统还包括:
用于响应于接收到具有所指定的优先级的请求完成的确认,确定具有所指定的优先级的并发请求的当前数目是否低于所指定的优先级阈值的装置;并且
用于响应于确定具有所指定的优先级的并发请求的当前数目低于所指定的优先级阈值,处理至少一个具有所指定的优先级的排队的请求的装置。
CN200980110957.9A 2008-03-31 2009-03-26 使用优先级确定是否对指向存储器的输入/输出(i/o)请求进行排队 Expired - Fee Related CN101981539B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/060,215 US7840720B2 (en) 2008-03-31 2008-03-31 Using priority to determine whether to queue an input/output (I/O) request directed to storage
US12/060,215 2008-03-31
PCT/EP2009/053611 WO2009121797A1 (en) 2008-03-31 2009-03-26 Using priority to determine whether to queue an input/output (i/o) request directed to storage

Publications (2)

Publication Number Publication Date
CN101981539A CN101981539A (zh) 2011-02-23
CN101981539B true CN101981539B (zh) 2014-03-12

Family

ID=40668338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980110957.9A Expired - Fee Related CN101981539B (zh) 2008-03-31 2009-03-26 使用优先级确定是否对指向存储器的输入/输出(i/o)请求进行排队

Country Status (6)

Country Link
US (1) US7840720B2 (zh)
EP (1) EP2266020B1 (zh)
JP (1) JP5132812B2 (zh)
KR (1) KR101242954B1 (zh)
CN (1) CN101981539B (zh)
WO (1) WO2009121797A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030931A1 (en) * 2008-08-04 2010-02-04 Sridhar Balasubramanian Scheduling proportional storage share for storage systems
US20100241760A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Web Front-End Throttling
EP2296091A1 (en) * 2009-09-14 2011-03-16 Nxp B.V. Servicing low-latency requests ahead of best-effort requests
US9164886B1 (en) * 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
CN102073605B (zh) * 2010-12-27 2012-11-21 深圳市创新科信息技术有限公司 一种绕过Bio层访问磁盘驱动的存储接口的方法
JP5494556B2 (ja) * 2011-04-19 2014-05-14 コニカミノルタ株式会社 画像形成方法および画像形成装置
ES2744197T3 (es) 2011-10-20 2020-02-24 Happiest Baby Inc Dispositivo de ayuda para calmar/ dormir lactantes
JP5899893B2 (ja) * 2011-12-19 2016-04-06 富士通株式会社 ストレージ装置、コマンド実行制御方法、およびプログラム
US9195511B2 (en) * 2012-03-05 2015-11-24 Accenture Global Services Limited Differentiated service-based graceful degradation layer
JP6160236B2 (ja) * 2013-05-20 2017-07-12 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
CA2819539C (en) * 2013-06-21 2021-01-12 Ibm Canada Limited - Ibm Canada Limitee Dynamic management of integration protocols
CN103501247A (zh) * 2013-09-25 2014-01-08 天脉聚源(北京)传媒科技有限公司 一种高并发请求处理方法及装置
JP6269257B2 (ja) * 2014-03-31 2018-01-31 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御プログラム、および情報処理装置の制御方法
US10152388B1 (en) * 2014-09-30 2018-12-11 EMC IP Holding Company LLC Active stream counts for storage appliances
CN104408088B (zh) * 2014-11-11 2020-06-19 奇安信科技集团股份有限公司 并发请求的控制方法及装置
KR102317786B1 (ko) 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
US10078471B2 (en) 2015-05-19 2018-09-18 Toshiba Memory Corporation Memory device that sorts access commands to a nonvolatile semiconductor memory unit thereof
US10305960B1 (en) * 2015-10-16 2019-05-28 Sprint Communications Company L.P. Detection of aberrant multiplexed transport connections
CN105262826A (zh) * 2015-10-29 2016-01-20 福建天晴数码有限公司 接口处理数量的调整方法及系统
KR102396309B1 (ko) * 2015-11-06 2022-05-10 삼성전자주식회사 데이터 요청을 제어하기 위한 장치 및 방법
US10241685B2 (en) * 2016-08-17 2019-03-26 Oracle International Corporation Externally managed I/O starvation avoidance in a computing device
US10990548B1 (en) * 2019-11-25 2021-04-27 Micron Technology, Inc. Quality of service levels for a direct memory access engine in a memory sub-system
US11012512B1 (en) * 2020-05-20 2021-05-18 EMC IP Holding Company LLC Host device with automated write throttling responsive to storage system write pressure condition
CN113260548B (zh) * 2020-05-20 2024-04-19 深圳元戎启行科技有限公司 管理车辆控制器的方法及控制设备、远程控制车辆的方法
US11550511B2 (en) 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives
CN115037802B (zh) * 2022-06-02 2024-03-08 北京百度网讯科技有限公司 一种请求处理方法、装置、电子设备和存储介质
US11934659B1 (en) 2022-09-28 2024-03-19 Dell Products L.P. Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system
CN115840542B (zh) * 2023-02-24 2023-06-02 浪潮电子信息产业股份有限公司 一种硬盘的请求处理方法、系统、存储介质和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292856B1 (en) * 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839817B2 (en) * 2002-04-24 2005-01-04 International Business Machines Corporation Priority management of a disk array
US20040205297A1 (en) 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7089381B2 (en) 2003-09-24 2006-08-08 Aristos Logic Corporation Multiple storage element command queues
JP4703959B2 (ja) * 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
US20060294412A1 (en) 2005-06-27 2006-12-28 Dell Products L.P. System and method for prioritizing disk access for shared-disk applications
US20070255897A1 (en) 2006-04-26 2007-11-01 Mcnutt Bruce Apparatus, system, and method for facilitating physical disk request scheduling
US8112566B2 (en) * 2007-06-06 2012-02-07 Intel Corporation Methods and apparatuses for processing I/O requests of data storage devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292856B1 (en) * 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request

Also Published As

Publication number Publication date
JP5132812B2 (ja) 2013-01-30
WO2009121797A1 (en) 2009-10-08
US7840720B2 (en) 2010-11-23
EP2266020A1 (en) 2010-12-29
KR101242954B1 (ko) 2013-03-12
US20090248917A1 (en) 2009-10-01
JP2011520165A (ja) 2011-07-14
KR20110000727A (ko) 2011-01-05
EP2266020B1 (en) 2015-07-08
CN101981539A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
CN101981539B (zh) 使用优先级确定是否对指向存储器的输入/输出(i/o)请求进行排队
CN110837410B (zh) 任务调度方法、装置、电子设备及计算机可读存储介质
US7162550B2 (en) Method, system, and program for managing requests to an Input/Output device
US9037505B2 (en) Mechanisms for executing a process in a cloud computing environment
US10120820B2 (en) Direct memory access transmission control method and apparatus
KR101865318B1 (ko) 버스트 모드 제어
US8868855B2 (en) Request management system and method for dynamically managing prioritized requests
US9772798B2 (en) Method and system for implementing workload management by monitoring disk utilizations
CN104102693A (zh) 对象处理方法和装置
US9436391B1 (en) Efficient scalable I/O scheduling
CN111209091B (zh) 混合云环境下含隐私数据的Spark任务的调度方法
CN102541460A (zh) 一种多磁盘场景下的磁盘管理方法和设备
CN111210136A (zh) 一种机器人任务调度的方法及服务器
CN102402401A (zh) 一种磁盘io请求队列调度的方法
CN101183298A (zh) 一种scsi数据读写方法、系统和装置
CN110750350B (zh) 一种大资源调度方法、系统、装置及可读存储介质
CN110515564B (zh) 一种输入/输出i/o路径的确定方法和装置
US9514289B2 (en) License management methods
CN104040477A (zh) 一种存储资源调度方法及终端
CN101073062A (zh) 在共享缓冲区中在系统和存储器之间传送数据
US10778806B2 (en) Shard sandboxing
CN110677463B (zh) 并行数据传输方法、装置、介质及电子设备
KR20170048721A (ko) 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치
CN116775363A (zh) 服务器异常处理方法及服务器
CN116830074A (zh) 数据处理方法及数据处理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140312

Termination date: 20210326

CF01 Termination of patent right due to non-payment of annual fee