CN101625629A - 使用滑动窗调度存取存储装置的请求的***和方法 - Google Patents
使用滑动窗调度存取存储装置的请求的***和方法 Download PDFInfo
- Publication number
- CN101625629A CN101625629A CN200910140130A CN200910140130A CN101625629A CN 101625629 A CN101625629 A CN 101625629A CN 200910140130 A CN200910140130 A CN 200910140130A CN 200910140130 A CN200910140130 A CN 200910140130A CN 101625629 A CN101625629 A CN 101625629A
- Authority
- CN
- China
- Prior art keywords
- request
- deadline
- time
- order
- sliding window
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 12
- 230000005055 memory storage Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000013500 data storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0625—Power saving in storage systems
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B2020/10935—Digital recording or reproducing wherein a time constraint must be met
- G11B2020/10944—Real-time recording or reproducing, e.g. for ensuring seamless playback of AV data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B2020/10935—Digital recording or reproducing wherein a time constraint must be met
- G11B2020/10953—Concurrent recording or playback of different streams or files
- G11B2020/10962—Concurrent recording or playback of different streams or files wherein both recording and playback take place simultaneously
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了使用滑动窗调度存取存储装置请求的技术。一种***包括存储装置和调度装置。调度装置确定存取存储装置的请求的截止期限是否落入第一和第二滑动窗内。调度装置以第一执行次序发布第一滑动窗中的请求,并以第二执行次序发布第二滑动窗中的请求。
Description
技术领域
本发明涉及数据存储装置,更特别地,涉及使用滑动窗(sliding window)调度存取存储装置请求的技术。
背景技术
数据存储装置包括硬盘驱动器、网络存储装置、固态存储器装置(如闪存)等。将数据存储装置也称为存储装置。
发明内容
根据本发明的一些实施例,***包括存储装置和调度装置(scheduler)。调度装置确定存取存储装置的请求的截止期限是否落在第一和第二滑动窗内。调度装置以第一执行次序发布位于第一滑动窗中的请求并以第二执行次序发布位于第二滑动窗中的请求。根据本发明的一些实施例,调度装置确定存取存储装置的请求是否落在第一、第二和第三滑动窗内,并且调度装置以第三执行次序发布位于第三滑动窗中的请求。
根据本发明的一些实施例,一种计算机***,包括用于优化调度装置的代码,其中将所述代码存储在计算机可读介质上,所述计算机***包括:用于接收存取存储装置的请求的代码;用于确定所述请求的截止期限是否落入第一和第二滑动窗内的代码,其中所述第一和第二滑动窗随着时间的前进而在时间上连续地向前移动;用于以第一次序发布位于所述第一滑动窗中的第一请求的代码;以及用于以第二次序发布位于所述第二滑动窗中的第二请求的代码。
根据本发明的一些实施例,一种通过使用调度装置来发布存取存储装置的请求的方法,所述方法包括:接收用于存取所述存储装置的请求;确定所述请求的截止期限是否落入第一和第二滑动窗内,所述第一和第二滑动窗随着时间的前进而在时间上连续地向前移动;以第一次序发布所述第一滑动窗中的第一请求;以及以第二次序发布所述第二滑动窗中的第二请求。
本发明包括用于执行在此描述的实施例的方法和***。
附图说明
当考虑下面详细的描述和附图时,本发明的各目标、特征和优点将变得明显。
图1是图解可以实施本发明的技术的***的框图。
图2根据本发明的实施例图解了如何组织通信量混合器(traffic mixer)。
图3A根据本发明的实施例图解了由实时调度装置使用以执行实时读和写输入/输出(IO)请求的三种不同的调度窗。
图3B根据本发明的另一实施例图解了由实时调度装置使用以执行实时读和写IO请求的三种调度窗的另一示例。
具体实施方式
诸如数字视频录像机(DVR)、机顶盒(STB)和媒体网络附加存储装置(媒体NAS)之类的***正在发展以支持诸如高清内容、多流(multi-stream)能力和混合工作量之类的高级特征。这些特征将实时通信(如音频/视频(AV)通信)和非实时通信进行组合。例如,基本的DVR功能性可以包括将实时AV流记录到硬盘驱动器,然后将AV流读回用户以便观看。另外,DVR、STB或媒体NAS装置可以提供非实时功能和应用,如电子节目指南、照片浏览、网页浏览、音乐播放列表管理、通用文件服务等。
诸如高清多区域(multi-room)数字视频录像机(DVR)之类的电子***能够同时记录来自多个源(如,线缆、卫星或空中广播调谐器)的数字内容,并且同时允许所存储的内容的本地回放以及其流通过家庭网络(homenetwork)至其他装置。这些装置的一些还提供其他类型的应用,如数字照片存储和查看、因特网浏览、email游戏等。
然而,记录和同时读取高清视频的多个流对***硬盘驱动器(HDD)和操作***存储堆栈(文件***和输入/输出调度装置)放置了巨大的需求。所要求的性能级别通常在原始设计目标和通用存储堆栈的使用目的之外。除了引入了严格的性能限制之外,文件***和输入/输出(IO)调度装置不具有在流应用(如,播放电影)与最大努力任务(best-effort task)(如,查看照片)之间进行区分的固有能力。结果,不能始终如一地保证时间临界(time-critical)盘输入和输出(IO)请求的准时处理,导致视频记录和回放的很差的服务质量(QoS)。
本发明的一些实施例通过对流文件管理使用不同的方法来减轻这些质量和可靠性问题中的一些。本发明的特定实施例改进了读和写IO请求的调度。如在下文中更详细地描述的那样,在一个实施例中,***包括数据存储装置和调度装置。调度装置可操作以接收具有截止期限的读和写IO请求,然后将所述请求以高效的方式发布到数据存储装置。调度装置可以确定每一个截止期限是否落在调度窗内。可以通过当前时间和阈值时间来限定调度窗。调度窗的这些参数至少部分地基于预测的请求完成时间。
调度装置将发布落在调度窗之后的IO请求延迟到之后的时间,以便发布和完成具有落在调度窗内的截止期限的、且由此具有更早的截止期限的紧急的IO请求。延迟某些IO请求的处理确保了调度装置在IO请求各自的截止期限之前完成它们。如在下文中更详细地描述的那样,调度装置可以分组多个IO请求,以便批量发布IO请求。批量发布IO请求增大了允许存储装置进入功率节省状态或执行维持功能的空闲时间。
尽管在数字视频录像机和硬盘驱动器的情况下描述了在此公开的本发明,但是本发明可以应用于其他类型的***,如机顶盒、数字监视***、视频编缉***、多媒体网络存储装置和其他类型的存储装置,并且仍然落在本发明的精神和范围之内。
图1是图解可以实施本发明的技术的***的框图。图1所示的***100包括主机***102,其包括处理器104和输入/输出(IO)调度装置106。***100还包括数据存储装置,如硬盘驱动器108。主机***102可以是DVR、机顶盒或其他类型的计算机***,如嵌入式***、最低限***、手持装置或计算机等。虽然示出了IO调度装置106位于主机***102上,但是IO调度装置106可以位于与主机***102分离的任意合适的位置(如,在硬盘驱动器108等上)。
输入/输出(IO)调度装置106位于操作***层内,并且一般负责决定何时向硬盘驱动器108发布实时和非实时读和写请求。在此也将读和写请求称为IO请求或简称为请求。处理这些实时和非实时功能产生了去往和来自硬盘驱动器108的通信量。
在操作中,主机***102经由IO调度装置106将IO请求发送到硬盘驱动器108。IO调度装置106可操作以接收来自处理器104的IO请求,并确定每一个IO请求的截止期限。在一些实施例中,IO请求是用于存取硬盘驱动器108的。例如,IO请求包括用于从硬盘驱动器108读数据和向硬盘驱动器108写数据的指令。同样地,IO调度装置106可操作以向硬盘驱动器108发布IO请求。然后硬盘驱动器108执行所请求的IO请求。
根据本发明的一些实施例,通信量混合器是实施为操作***内核模块的IO调度装置。操作***可以是例如Linux、Windows、VxWorks或任意其他合适的操作***。通过使用附于IO请求的截止期限信息,通信量混合器区分并调度实时(RT)和最大努力(BE)请求,这确保了RT请求在它们的截止期限之前完成并最小化BE请求的处理等待时间。BE请求是非实时请求。RT和BE请求包括读请求和写请求。
由于通信量混合器不是带宽保留***,因此在请求到达或完成时动态地进行IO调度决定。结果,可以超载具有RT通信量的***,并使实时调度失败。本发明的一些实施例通过在多个滑动窗中执行请求来解决该问题,如下面详细描述的那样。
图2根据本发明的实施例图解了如何组织通信量混合器。至硬盘驱动器的所接收到的读和写IO请求首先通过允许进入(admission)步骤201以确定其类型。将具有附于其的截止期限的请求作为实时(RT)请求来对待。将所有其他的请求作为最大努力(BE)请求来对待。对于RT请求,允许进入步骤201还将截止期限限制到最大值(如,20秒)。
然后根据其类型来排队请求。在步骤202排队实时(RT)请求,而在步骤203排队最大努力(BE)请求。以执行次序来维持突出的(outstanding)最大努力(BE)请求的列表。执行次序是可以最有效地(即,以最少量的时间)执行请求的次序。一般而言,最有效的执行次序根据硬盘驱动器模型、物理块线路图(layout)等而变化。通过使用示例硬盘驱动器模型,执行次序可以是逻辑块地址(LBA)(即,盘偏移)次序。
在步骤202,将RT请求排队为两个不同的列表,一个以执行次序,而另一个以截止期限次序。索引集合和分别用于表示以逻辑块地址(LBA)次序(即执行次序)和截止期限次序的NR请求的序列。在步骤205,如果以LBA次序来调度该集合,则通信量混合器204估计每一个RT请求的服务时间,以及突出的RT请求的整个集合的服务时间。每一请求的估计的服务时间用于决定下面执行的请求的类型(实时或最大努力)。如果以LBA次序调度突出的RT请求的集合,则也可以使用突出的RT请求的整个集合的服务时间来决定下面执行的请求的类型。
RT请求服务时间估计
在步骤205,通信混和器204中的RT请求服务时间估计器(estimator)使用盘模型来估计RT请求的服务时间。该盘模型基于硬盘驱动器中盘的旋转时间段Tr、硬盘驱动器的平均搜索时间Ts、硬盘驱动器的最大和最小传输速度Dtmax和Dtmin以及盘的最大LBA Lmax。该盘模型假定盘传输速度在最大和最小速度之间线性变化。如下面的等式(1)所示的那样来估计大小S(R)和LBA地址L(R)的RT请求R的服务时间Tc(R)。
在等式(1)中,对于读请求来说α等于1。项αTr/2表示硬盘驱动器中盘的平均旋转等待时间。在写请求的情况下,α等于3,以便将盘的全部旋转时间添加到估计中,以说明写请求的旋转丢失(revolution miss)的较高概率。β通常为1,除非所估计的请求关于之前估计的一个请求是连续的,在这种情况下,将β设置为0以反映不存在头搜索。可以使用另一种更精确的估计器来代替上述估计器。上述估计器具有仅使用可以从盘规格(specification)容易地获得的、或直接测量的参数的小集合的优点。在此描述的盘模型使低估的概率足够小。
混合器策略
当仅存在一种类型的请求时,那么选择所述类型的请求作为用以执行的下一类型的请求。一般而言,BE和RT请求二者均存在。当BE和RT请求二者均存在时,通信量混合器204确定是否可以执行最大努力请求,并关于所有未决的RT请求仍然维持余量m。通信量混合器204通过跟踪为了满足余量约束m而必须执行RT请求的时间H来作出确定。时间H可以使用以下所示的等式(2)来计算。
在等式(2)中,表示请求的截止期限,其中是当以执行次序(即,以LBA次序)考虑RT请求时的第j个RT请求。此外,在等式(2)中,是RT请求的估计处理(完成)时间。在当前时间t,如果H≥t,,则RT请求的集合是可调度的。如果H-t≥TC(R′),其中R′是队列中的下一BE请求,则执行BE请求,并且RT请求仍然可调度。如果由于H-t<TC(R′)而测试失败,则调度装置开始执行RT请求。在每次接收或完成新的RT请求时,混合器均重新计算H。
RT调度装置策略
在步骤207,实时(RT)调度装置执行RT请求。如果H大于等于当前时间t(即,H≥t),则实时(RT)调度装置以LBA次序执行请求。如果H<t,则RT调度装置的策略取决于最早的请求的截止期限。如果最早请求的截止期限小于等于当前时间(即, )(如,请求R错过了其截止期限),则不处理请求R,并使用超时错误码来将其标记为失败。如果最早请求的截止期限小于等于当前时间t加上参数e(即, ),则RT调度装置以最早截止期限优先(EDF)次序,执行具有小于等于(t+e)的截止期限的RT请求的集合。参数e是可编程的。否则,对于每一请求Rj,将逻辑块地址(LBA)次序施加于下面如公式(3)所示的RT请求的子集。
图3A根据本发明的实施例图解了由实时调度装置使用以执行实时读和写IO请求的三种不同的调度窗。图3A中所示的三种不同的调度窗是最早截止期限优先(EDF)窗、紧急情况LBA次序窗和正常情况LBA次序窗。只有具有小于t+e的截止期限的实时请求被置于EDF窗中,其中t是当前时间。将具有最早截止期限加上服务质量(QoS)约束余量m内的截止期限的实时请求置于紧急LBA次序窗中。将可调度的实时请求的集合(即,具有距离当前时间t至少约束余量m的截止期限)置于正常情况LBA次序窗中。
以LBA次序执行处于紧急和正常LBA次序窗中的请求。LBA次序意味着通过增大硬盘驱动器或其他类型的数据存储装置上的LBA位置来排序请求。在特定时间间隔内使用LBA次序可调度的IO请求的集合意味着通信量混合器算法已经确定具有落在所述时间间隔中的截止期限的请求将在不迟于所述时间间隔的结束时完成。
如果发布具有足够大截止期限的许多实时(RT)读和写请求,则在一些硬盘驱动器中的IO调度装置忽略所述请求直到经过了足够的时间为止,并且截止期限变得足够接近当前时间。当多个RT读和写请求变得足够接近当前时间时,IO调度装置可能突然面对在其截止期限之前不能被处理的多个请求。如果正在服务具有几乎同时的截止期限的几个流,则可能产生这个问题。
为了解决这个问题,根据本发明的实施例,RT调度装置确定每一个读和写请求是否落在三种不同的调度窗(在图3A中将这三种不同的调度窗称为即时(EDF)、紧急LBA次序和正常LBA次序窗)的一个或多个内。这三种调度窗都随着时间动态地移动。换言之,图3A中所示的这三种调度窗(即时、紧急和正常)都是每一个均随着时间前进而在时间上连续地向前移动的滑动窗。例如,对于小值和大值T来说,如果时间增加了量T,则每一个即时、紧急和正常窗的开始和结尾均在时间上向前移动了T。
以最早截止期限优先(EDF)次序尽快处理EDF窗中的所有RT请求。由此,将EDF窗中具有最早截止期限的请求选择为待执行的下一请求。如果在EDF窗中不存在请求,则使用更有效的LBA次序作为用于执行紧急和正常窗中的RT请求的调度策略,其中所考虑的请求的可变集合取决于最早请求的截止期限。由此,如果在EDF窗中不存在请求,则以LBA次序执行所选择的请求。特别地,如果最早请求处于在LBA次序正常窗中,则考虑所有请求,以便以LBA次序执行。如果最早请求处于LBA次序紧急窗中,则通信量混合器可以决定仅以LBA次序执行一些请求。甚至考虑具有大截止期限的RT请求作为用于在RT调度装置中调度的候选者。因此,RT调度装置不会变得被靠近其截止期限的大量RT请求所淹没。在执行每一个请求之后,将所执行的请求从滑动窗移除。
图3A示出了最早请求的截止期限大于t+e但小于t+m的示例。基于具有最早截止期限的请求来限定紧急LBA次序窗。因此,紧急LBA次序窗基于关于当前时间最早请求的截止期限何时出现而变化。两个其他窗取决于当前时间t以及参数e和m。
图3B根据本发明的实施例图解了由实时调度装置使用以执行实时读和写IO请求的三种滑动窗的另一示例。图3B中所示的三种滑动窗与图3A中所示的三种滑动窗相同。在图3B中,紧急LBA次序窗与EDF窗重叠,因为最早请求的截止期限小于从当前时间t起的e(即, )。
BE调度装置策略
通过使用LBA次序策略,在步骤208由BE调度装置确定最大努力(BE)请求的执行次序。根据该LBA次序策略,从执行的最后请求(RT或BE)的末端LBA开始,以增大LBA次序来执行BE请求。
由于可以中断BE请求调度以处理RT请求,因此LBA变化可能不是单调的,这潜在地导致BE请求不足。BE调度装置通过在每次选择BE请求时减小最陈旧BE请求的龄期来解决该问题。如果该请求的龄期变得低于使用LBA次序选择的BE请求的龄期,则在其位置选择最陈旧的请求。
占空比最小化
将硬盘驱动器的占空比限定为硬盘驱动器忙于处理请求的时间的百分比。在步骤206,通信量混合器中的占空比最小化(DCM)计时器即使在不存在BE请求的情形下仍延迟RT请求的处理。该DCM延迟允许RT请求的潜在累积,以便RT调度装置可以关于请求的更大集合执行LBA次序,这导致由于请求之间减小的平均搜索距离而带来的更好性能。通信量混合器等待直到时间H为止,以开始执行RT请求。
通信量混合器204可以根据IO请求的截止期限将其分组为多个批。例如,通信量混合器可以将具有落入特定调度窗内的截止期限的IO请求分组为一批。将该批中的IO请求在之前调度窗中的某一时间发布到硬盘驱动器。在通信量混合器发布一批IO请求之后,通信量混合器可以在调度窗结束之前发布尽可能多的最大努力请求。如果在调度窗结束之前不再存在最大努力请求,则通信量混合器可以开始发布来自下一批的IO请求,或者可以维持硬盘驱动器空闲直到下一调度窗开始为止。
通信量混合器204可以发布在包含这些IO请求的截止期限的调度窗之前的调度窗中的每一批IO请求。根据花费多长时间执行IO请求,发布之前调度窗中的IO请求可能不足以保证所有IO请求均在其截止期限之前完成。本发明的一些实施例可以确定何时开始发布给定批的IO请求以便确保所述批内的所有IO请求都满足其各自的截止期限。截止期限可从短(如,100-200毫秒)到中范围(如,500-600毫秒),到长(如,2秒)变化。在此公开的一些实施例关于引入的IO请求利用截止期限或优先级。
为了改善调度行为,通信量混合器204可以利用自适应硬盘驱动器模型以估计完成一个或多个IO请求所需的时间量。然后通信量混合器可以使用自适应硬盘驱动器模型来确定通信量混合器应该开始给定批的IO请求的最近时间。例如,当所述批中最近的截止期限等于估计的所述批的完成时间加上某一调度余量的时候,可以开始一批IO请求。在一个实施例中,调度余量表示通信量混合器加到请求完成时间或批完成时间估计上的额外的安全余量。所测量的余量是实际请求完成时间或批完成时间与指定的请求截止期限或批截止期限之间的差。
在一个实施例中,由自适应硬盘驱动器来确定所估计的用以完成批中所有IO请求的服务时间,其中所估计的服务时间适合实际的硬盘驱动器请求完成时间。通信量混合器可以利用硬盘驱动器的模型以估计请求完成时间,然后适合实际请求完成时间或根据各个请求或多个批的请求所测量的余量。同样地,一向过高估计或过低估计了请求完成时间的模型将变换时间以提供改进的估计。因此,如果花费比预期更长的时间来完成一批IO请求(即,测量余量小于调度余量),则通信量混合器增大调度余量。相反,如果比硬盘驱动器模型估计的更快地完成一批请求(即,测量余量大于调度余量),则通信量混合器减小调度余量。在同时待审的、共同转让给Molaro等人的、2007年8月30日提交的美国专利申请序列号11/848,174(将其全部内容通过引用的方式合并在此)中描述了自适应性IO调度装置的进一步细节。
为了说明和描述的目的,已经呈现了本发明的示例性实施例的前述描述。并非旨在穷举或将本发明限制到在此所公开的示例。在一些情况下,可以采用本发明的特征,而没有所提出的其他特征的对应使用。在不脱离本发明的范围的情况下,根据以上教导,许多修改、改变和变化都是可能的。并非旨在通过该详细的描述来限制本发明的范围。例如,可以使用硬件、软件和包含程序指令的计算机可读介质中之一或组合来实施本发明的实施例。可以将由本发明的实施例实施的软件和本发明的结果存储在计算机可读介质上,如存储器、硬盘驱动器、致密盘(CD)、数字视频盘(DVD)或其他介质。本发明的结果可以用于各种目的,如通过处理器执行或处理、向用户显示、通过网络以信号的方式传送等。
Claims (20)
1、一种***,包括:
存储装置;以及
调度装置,其确定用于存取所述存储装置的请求的截止期限是否落入第一和第二滑动窗内,以及
其中所述调度装置以第一执行次序发布位于所述第一滑动窗中的请求并以第二执行次序发布位于所述第二滑动窗中的请求。
2、根据权利要求1所述的***,其中所述第一滑动窗中的请求由所述调度装置以所述第一滑动窗中请求的截止期限的次序来发布,其中首先执行所述第一滑动窗中的请求的最早截止期限。
3、根据权利要求2所述的***,其中所述第二滑动窗中的请求由所述调度装置以逻辑块地址的次序来发布。
4、根据权利要求2所述的***,其中所述调度装置确定用于存取所述存储装置的请求的截止期限是否落入所述第一、所述第二和第三滑动窗内,并且所述调度装置以第三执行次序发布位于所述第三滑动窗中的请求。
5、根据权利要求4所述的***,其中以增大所述存储装置上逻辑块地址位置的次序来执行所述第二滑动窗中的请求和所述第三滑动窗中的请求。
6、根据权利要求1所述的***,其中如果对于至少一个请求的截止期限落在时间阈值之后,则所述调度装置在经延迟的时间处发布所述至少一个请求。
7、根据权利要求1所述的***,其中所述第二滑动窗在具有最早截止期限的请求的截止期限处开始。
8、一种计算机***,包括用于优化调度装置的代码,其中将所述代码存储在计算机可读介质上,所述计算机***包括:
用于接收存取存储装置的请求的代码;
用于确定所述请求的截止期限是否落入第一和第二滑动窗内的代码,其中所述第一和第二滑动窗随着时间的前进而在时间上连续地向前移动;
用于以第一次序发布位于所述第一滑动窗中的第一请求的代码;以及
用于以第二次序发布位于所述第二滑动窗中的第二请求的代码。
9、根据权利要求8所述的计算机***,其中用于以所述第一次序发布第一请求的代码进一步包括用于基于所述第一请求的截止期限、以最早截止期限第一次序发布所述第一请求的代码。
10、根据权利要求9所述的计算机***,其中用于以第二次序发布第二请求的代码进一步包括用于以逻辑块地址的次序发布所述第二请求的代码。
11、根据权利要求8所述的计算机***,进一步包括:
用于确定所述请求的截止期限是否落入第三滑动窗内的代码,其中所述第三滑动窗随着时间的前进在时间上连续地向前移动;以及
用于以第三次序发布所述第三滑动窗中的第三请求的代码。
12、根据权利要求11所述的计算机***,其中用于以所述第三次序发布所述第三请求的代码进一步包括以增大硬盘驱动器上的逻辑块地址位置的次序发布所述第三请求的代码。
13、根据权利要求8所述的计算机***,进一步包括:
使用基于硬盘驱动器中盘的旋转时间段、硬盘驱动器的平均搜索时间、硬盘驱动器的最大和最小传输速度以及盘的最大逻辑块地址的模型来估计所述请求的服务时间的代码,其中所述请求的估计服务时间被用于决定下面是执行实时请求还是最大努力请求。
14、根据权利要求8所述的计算机***,其中所述第二滑动窗在具有最早截止期限的请求的截止期限处开始。
15、一种通过使用调度装置来发布存取存储装置的请求的方法,所述方法包括:
接收用于存取所述存储装置的请求;
确定所述请求的截止期限是否落入第一和第二滑动窗内,所述第一和第二滑动窗随着时间的前进而在时间上连续地向前移动;
以第一次序发布所述第一滑动窗中的第一请求;以及
以第二次序发布所述第二滑动窗中的第二请求。
16、根据权利要求15所述的方法,其中以所述第一次序发布所述第一请求进一步包括基于所述第一请求的截止期限、以最早截止期限第一次序发布所述第一请求。
17、根据权利要求16所述的方法,其中以所述第二次序发布所述第二请求进一步包括以逻辑块地址的次序发布所述第二请求。
18、根据权利要求15所述的方法,其中确定所述请求的截止期限是否落入第一和第二滑动窗进一步包括确定所述请求的截止期限是否落入所述第一、所述第二和第三滑动窗,所述第一、第二、第三滑动窗随着时间的前进而在时间上连续地向前移动,其中所述方法进一步包括:
以第三次序发布位于所述第三滑动窗中的第三请求。
19、根据权利要求18所述的方法,其中以所述第三次序发布所述第三请求进一步包括以增大硬盘驱动器上的逻辑块地址位置的次序发布所述第三请求。
20、根据权利要求15所述的计算机***,其中所述第二滑动窗在具有最早截止期限的请求的截止期限处开始。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/169,318 US8407440B2 (en) | 2008-07-08 | 2008-07-08 | Techniques for scheduling requests for accessing storage devices using sliding windows |
US12/169,318 | 2008-07-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101625629A true CN101625629A (zh) | 2010-01-13 |
Family
ID=41506167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910140130A Pending CN101625629A (zh) | 2008-07-08 | 2009-07-08 | 使用滑动窗调度存取存储装置的请求的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8407440B2 (zh) |
CN (1) | CN101625629A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508618A (zh) * | 2011-11-02 | 2012-06-20 | 中国人民解放军国防科学技术大学 | 一种基于请求动态延迟调度的磁盘能耗优化方法 |
CN103488544A (zh) * | 2013-09-26 | 2014-01-01 | 华为技术有限公司 | 检测慢盘的处理方法和装置 |
CN104303149A (zh) * | 2012-02-23 | 2015-01-21 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和*** |
CN104580972A (zh) * | 2013-10-21 | 2015-04-29 | 谷歌公司 | 用于提供由设备的传感器收集的媒体内容的方法和*** |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539176B2 (en) * | 2008-07-08 | 2013-09-17 | HGST Netherlands B.V. | Data storage devices accepting queued commands having deadlines |
US9395920B2 (en) * | 2011-11-17 | 2016-07-19 | Mirosoft Technology Licensing, LLC | Throttle disk I/O using disk drive simulation model |
US9396146B1 (en) * | 2012-06-18 | 2016-07-19 | Marvell International Ltd. | Timing-budget-based quality-of-service control for a system-on-chip |
US20140250440A1 (en) * | 2013-03-01 | 2014-09-04 | Adaptive Computing Enterprises, Inc. | System and method for managing storage input/output for a compute environment |
US10324758B1 (en) * | 2017-03-31 | 2019-06-18 | Workday, Inc. | Read load task throttling |
FR3082029B1 (fr) * | 2018-06-05 | 2020-07-10 | Thales | Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources |
RU2718215C2 (ru) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Система обработки данных и способ обнаружения затора в системе обработки данных |
RU2731321C2 (ru) | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ определения потенциальной неисправности запоминающего устройства |
RU2714219C1 (ru) * | 2018-09-14 | 2020-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования передачи операций ввода/вывода |
RU2721235C2 (ru) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для маршрутизации и выполнения транзакций |
RU2714602C1 (ru) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки данных |
RU2711348C1 (ru) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки запросов в распределенной базе данных |
RU2714373C1 (ru) | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования выполнения операций ввода/вывода |
RU2749649C2 (ru) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
RU2720951C1 (ru) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и распределенная компьютерная система для обработки данных |
RU2746042C1 (ru) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для передачи сообщения |
JP7114515B2 (ja) * | 2019-03-14 | 2022-08-08 | 国立大学法人東海国立大学機構 | 通信装置、通信システム及びメッセージ調停方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0834878A2 (en) * | 1996-10-04 | 1998-04-08 | Sony Corporation | Method and device for controlling access to a disc storage device |
AU2003222051A1 (en) | 2003-03-21 | 2004-11-19 | Seagate Technology Llc | Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements |
KR100927190B1 (ko) * | 2007-10-12 | 2009-11-18 | 한국전자통신연구원 | 디스크 스케줄링 방법 및 장치 |
US8539176B2 (en) * | 2008-07-08 | 2013-09-17 | HGST Netherlands B.V. | Data storage devices accepting queued commands having deadlines |
-
2008
- 2008-07-08 US US12/169,318 patent/US8407440B2/en not_active Expired - Fee Related
-
2009
- 2009-07-08 CN CN200910140130A patent/CN101625629A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508618A (zh) * | 2011-11-02 | 2012-06-20 | 中国人民解放军国防科学技术大学 | 一种基于请求动态延迟调度的磁盘能耗优化方法 |
CN104303149A (zh) * | 2012-02-23 | 2015-01-21 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和*** |
CN104303149B (zh) * | 2012-02-23 | 2017-11-17 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和*** |
CN103488544A (zh) * | 2013-09-26 | 2014-01-01 | 华为技术有限公司 | 检测慢盘的处理方法和装置 |
CN103488544B (zh) * | 2013-09-26 | 2016-08-17 | 华为技术有限公司 | 检测慢盘的处理方法和装置 |
CN104580972A (zh) * | 2013-10-21 | 2015-04-29 | 谷歌公司 | 用于提供由设备的传感器收集的媒体内容的方法和*** |
CN104580972B (zh) * | 2013-10-21 | 2016-08-24 | 谷歌公司 | 用于提供由设备的传感器收集的媒体内容的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
US20100011182A1 (en) | 2010-01-14 |
US8407440B2 (en) | 2013-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101625629A (zh) | 使用滑动窗调度存取存储装置的请求的***和方法 | |
US8051232B2 (en) | Data storage device performance optimization methods and apparatuses | |
US8683469B2 (en) | Adaptive command scheduling | |
KR100415861B1 (ko) | 디스크 제어기로부터 디스크 드라이브로 명령을 보낼것인가를 판단하는 방법, 디스크 제어기 및 프로그램을저장하는 기록매체 | |
US9021175B2 (en) | Method for reordering access to reduce total seek time on tape media | |
US5787482A (en) | Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window | |
CN101261592B (zh) | 用于对任务请求进行调度的方法和设备 | |
CN100590583C (zh) | 写入和读取应用数据的方法和*** | |
US8072704B1 (en) | Energy-saving operation of a storage device | |
CN102713824A (zh) | 基于未来使用估计的分配存储器 | |
US8539176B2 (en) | Data storage devices accepting queued commands having deadlines | |
JP2004513454A (ja) | 周期的タスクのベストケース反応時間を決定する方法および装置 | |
CN102402401A (zh) | 一种磁盘io请求队列调度的方法 | |
US7376334B2 (en) | Data recording/reproduction apparatus, method and program for real-time processing | |
CN102576294B (zh) | 含有多个存储装置的存储***和方法 | |
CN102981773B (zh) | 存储设备访问方法、访问***及存储设备访问管理器 | |
US7890958B2 (en) | Automatic adjustment of time a consumer waits to access data from queue during a waiting phase and transmission phase at the queue | |
CN103810123B (zh) | 内存控制装置及方法 | |
US8819363B2 (en) | Data copying method | |
CN108920093B (zh) | 数据读写方法、装置、电子设备及可读存储介质 | |
EP0996885B1 (en) | Data storage apparatus and access method thereof | |
CN100583044C (zh) | 数据处理装置及其方法 | |
JP2004104212A (ja) | 帯域管理ファイルシステム装置並びにそのプログラムとプログラム記録媒体 | |
KR100983048B1 (ko) | Ncq 제어 방법 및 컴퓨팅 장치 | |
Sandsta et al. | Analysis of retrieval of multimedia data stored on magnetic tape |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100113 |