CN107451006A - 限制存储设备中的性能变化的技术 - Google Patents

限制存储设备中的性能变化的技术 Download PDF

Info

Publication number
CN107451006A
CN107451006A CN201710403593.XA CN201710403593A CN107451006A CN 107451006 A CN107451006 A CN 107451006A CN 201710403593 A CN201710403593 A CN 201710403593A CN 107451006 A CN107451006 A CN 107451006A
Authority
CN
China
Prior art keywords
storage device
request
time
response time
controller
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.)
Granted
Application number
CN201710403593.XA
Other languages
English (en)
Other versions
CN107451006B (zh
Inventor
D·S·埃布森
K·A·戈梅
M·伊什
D·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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN107451006A publication Critical patent/CN107451006A/zh
Application granted granted Critical
Publication of CN107451006B publication Critical patent/CN107451006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本主题申请涉及用于限制存储设备中的性能变化的技术。本发明描述了一种用于限制存储设备中的性能变化的系统和方法。存储设备接收来自其他计算设备(诸如,主机计算设备)的一个或多个工作请求以执行一个或多个操作。完成所述工作请求可能需要响应时间。在一些实施方案中,如果执行所述工作请求的所述响应时间超过阈值,则所述存储设备可分配附加计算资源来完成所述工作请求。

Description

限制存储设备中的性能变化的技术
技术领域
本公开涉及存储设备。
背景技术
存储设备可能通过各种方式将错误引入到数据中。例如,使用多级单元(MLC)技术的固态驱动器(SSD)可能通过不正确地解译电荷电平而将读取或写入错误引入到数据中。为了克服错误,典型的存储设备系统可采用各种错误恢复方法,这可能带来例如该存储设备系统的响应时间变化。
发明内容
本公开涉及用于限制存储设备中的性能变化的方法和系统。在一些实施方案中,本发明的系统和方法可分配附加资源来执行由存储设备接收的工作请求。
本发明描述了包括用于限制存储设备中的性能变化的系统的存储设备。在一个实施方案中,存储设备可包括控制器,该控制器被配置为接收执行一个或多个操作的请求;估计该请求的响应时间,该响应时间指示控制器部分地执行该请求所花的持续时间;确定响应时间超过执行时间阈值;并且在确定响应时间超过执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
存储设备的控制器可被配置为确定请求的到达时间,该到达时间是控制器接收到请求的时间。控制器可利用到达时间给该请求添加时间戳,或者可将该请求的到达时间记录在到达日志中。控制器可被配置为将当前时间与到达时间进行比较,并且基于当前时间和到达时间之间的差来确定响应时间。控制器还可被配置为确定在执行包括在请求中的一个或多个操作期间发生错误,并且执行一个或多个错误恢复操作以弥补已检测到的错误。该请求的一个或多个操作可包括读取操作和写入操作两者的混合工作负载。执行时间阈值可等于执行请求的平均执行时间。控制器可被配置为分配一个或多个错误恢复操作以对存储设备的资源具有最高优先级。存储设备可为固态驱动器(SSD)存储设备。一个或多个错误恢复操作可包括重新读取存储设备的一个或多个存储器单元。一个或多个错误恢复操作可包括外部代码恢复操作。
还描述了用于限制存储设备中的性能变化的方法。在一个实施方案中,该方法可包括由存储设备的控制器接收执行一个或多个操作的请求;估计该请求的响应时间,该响应时间指示控制器部分地执行该请求所花的持续时间;确定响应时间超过执行时间阈值;并且在确定响应时间超过执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
还描述了用于限制存储设备性能变化的装置。在一个实施方案中,该装置可包括处理器、与处理器进行电子通信的存储器以及存储在存储器中的指令。该指令可由处理器执行,以执行以下步骤:由存储设备的控制器接收执行一个或多个操作的请求;估计该请求的响应时间,该响应时间指示控制器部分地执行该请求所花的持续时间;确定响应时间超过执行时间阈值;并且在确定响应时间超过执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
前文已经相当广泛地概述了根据本公开的示例的特征结构和技术优点,使得可以更好地理解以下具体实施方式。下面将描述其他特征结构和优点。本发明所公开的概念和具体示例可以容易地用作修改或设计用于实施本公开的相同目的的其他结构的基础。此类等同的结构仍然属于所附权利要求的范围。当结合附图考虑时,从下面的具体实施方式可以更好地理解本发明所公开的概念的特征(包括其组织和操作方法),以及相关优点。每个附图仅用于例示和描述的目的,并不作为对权利要求限制的定义。
附图说明
参考以下附图可以进一步理解本公开的性质和优点。在附图中,类似的部件或特征结构可以具有相同的参考标号。
图1是根据各种实施方案的用于限制计算设备中的性能的系统的示例的框图;
图2示出了根据本公开的各个方面的图1的系统的实施方案的简化框图;
图3示出了根据本公开的各个方面的一个或多个软件部件的简化框图;
图4示出了根据本公开的各个方面的执行工作请求的示例性过程的简化图形表示;
图5示出了根据本公开的各个方面的用于执行工作请求的总响应时间的分布的简化图形表示;并且
图6示出了简化流程图,其示出根据本公开的各个方面的方法的示例。
具体实施方式
下文通常涉及限制存储设备中的性能变化。在一个实施方案中,常要求存储设备提供一致的性能。例如,大型数据中心希望能够告诉客户他们可以在特定且狭窄的时间帧内存储/传送数据。因此,存储设备设计者检查响应时间的变化,并通常尝试消除响应时间异常值。
此外,存储设备的用户也希望其存储设备不会将任何错误引入到存储的数据中。存储设备可能通过各种方式将错误引入数据中。例如,使用多级单元(MLC)技术的固态驱动器(SSD)可能通过不正确地解译电荷电平而将读取或写入错误引入到数据中。MLC SSD被设计用于在单个单元中存储两比特数据。因此,MLC SSD的每个单元能够呈现四种状态,其表示存储在浮栅中的不同电荷量。因为MLC SSD必须区分四种电荷电平(而不是在单级单元(SLC)SSD中发现的典型的两种电荷电平),因此各种电荷电平之间的区别可能不太明确。因此,MLC SSD比SLC SSD更有可能不正确地误解译单元的电荷电平,从而产生不正确的数据。
为了克服错误,典型的存储设备系统可采用各种错误恢复方法。例如,如果存储设备检测到数据中可能存在错误,则存储设备可执行重新读取命令以校正错误。在提高正在产生的数据的质量的同时,实施错误恢复操作可引起满足请求的响应时间变化。因此,在数据的准确性和数据的传送速度之间可能存在折衷。此外,存储装置使用错误恢复操作的速率通常依赖于系统。在存储设备的寿命周期中的某些时刻,可以每一百个工作请求中大约一个的速率调用错误恢复操作。
下文更详细描述的系统和方法被配置为减少由于使用错误恢复操作而引起的响应时间变化。在一个实施方案中,本文所述的系统和方法被配置为减少对于执行最长时间的请求的响应时间。
在一些实施方案中,存储设备可监视由存储设备接收的每个请求的响应时间。当工作请求的响应时间超过执行阈值时,存储设备将分配附加计算资源来执行工作请求。在一些实施方案中,响应时间超过执行阈值,因为正在使用错误恢复操作来校正数据中的错误。在此类实施方案中,存储设备将分配附加资源来执行错误恢复操作。通过将错误恢复操作优先于存储设备正在执行的其他工作请求、动作和操作,将减少作为异常值的工作请求的响应时间,并将响应时间有效地拉向工作请求的平均响应时间。另外,为具有过长响应时间的工作请求分配附加资源可能会导致其他请求具有稍长的响应时间,因为没有足够的资源可用于执行所述工作请求。这些系统和方法的结果是最小化用于执行工作请求的响应时间的变化。
图1是示出用于实施本文所述方法的系统100的一个实施方案的框图。系统100可包括设备105和存储介质110。存储介质110可包括硬盘驱动器、固态驱动器和包括硬盘和固态驱动器的混合驱动器的任何组合。在一些实施方案中,本文所述的系统和方法可在单个设备(例如,设备105)上执行。在一些情况下,本文所述的方法可以在多个存储设备或存储设备网络上执行。设备105的示例包括存储服务器、存储外壳、存储控制器、分布式存储系统中的存储驱动器、云存储系统上的存储驱动器、个人计算设备上的存储设备、服务器上的存储设备等。在一些配置中,设备105可包括性能监视器130。在一个示例中,设备105可耦接到存储介质110。在一些实施方案中,设备105和存储介质110可以是闪存或固态驱动器的部件。或者,设备105可以是存储介质110的主机(例如,操作系统、主机硬件系统等)的部件。
在一个实施方案中,设备105可以是具有一个或多个处理器、存储器和/或一个或多个存储设备的计算设备。在一些情况下,设备105可使用有线或无线连接来与存储介质110通信。在一些实施方案中,设备105可包括用于家庭或办公室环境的云驱动器。在一个实施方案中,设备105可包括网络设备诸如交换机、路由器、接入点等。在一个示例中,设备105可用于接收数据流,存储和/或处理数据,以及/或者将数据传输自/至一个或多个本地和/或远程计算设备,或传输与其结合的数据。
设备105可以包括数据库。在一些情况下,数据库可位于设备105的内部。例如,存储介质110可包括数据库。除此之外或另选地,数据库可包括到与数据库的有线和/或无线连接。另外,如本文进一步详细描述的那样,软件和/或固件(例如,存储在存储器中)可在设备105的处理器上执行。此类在处理器上运行的软件和/或固件可以可操作地用于使设备105监视、处理、汇总、呈现和/或发送与本文所述操作相关联的信号。
在一些实施方案中,存储介质110可经由一个或多个网络连接到设备105。网络的示例包括云网络、局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、个人区域网络、近场通信(NFC)、电信网络、无线网络(例如使用802.11)和/或蜂窝网络(例如使用3G和/或LTE)等。在一些配置中,网络可以包括因特网和/或内部网。设备105可经由有线通信链路、无线通信链路或两者的任何组合在网络上接收和/或发送信号。在一些实施方案中,用户可经由本地计算设备、远程计算设备和/或网络设备访问设备105的功能。例如,在一些实施方案中,设备105可包括与用户交互的应用程序。在一些情况下,设备105可包括与网络设备、远程计算设备和/或本地计算设备的一个或多个功能交互的应用程序。
在一个实施方案中,存储介质110可位于设备105的内部。作为一个示例,设备105可包括与存储介质110的存储介质交互的存储控制器。性能监视器130可至少部分地基于确定待处理请求的响应时间已超过执行时间阈值来分配附加资源,以执行待处理请求。
图2示出了根据本公开的各个方面的用于数据的电子存储的存储设备205的实施方案的框图200。存储设备205可以是参考图1描述的系统100的一个或多个方面的示例。存储设备205可以是设备105、存储介质110或这两者的组合的示例。在一些实施方案中,存储设备205可被实现为用于存储数据的SSD存储设备。存储设备205可包括驱动器控制器210、驱动器缓冲器215、主机接口逻辑部件220、驱动介质225、错误控制单元245(ECC单元245)和性能监视器130。这些部件中的每个部件可通过一个或多个网络直接和/或间接地彼此通信和/或与其他部件进行通信。
可使用适于在硬件中执行一些或全部可应用功能的一个或多个专用集成电路(ASIC)来单独地或集体地实现存储设备205的一个或多个部件。另选地,功能可以由一个或多个集成电路上的一个或多个其他处理单元(或芯)执行。在其他示例中,可以使用其他类型的集成电路(例如,结构化/平台ASIC、现场可编程门阵列(FPGA)和其他半定制IC),这些集成电路可以以本领域中已知的任何方式进行编程。每个部件的功能还可以全部或部分地利用实现在存储器中的指令来实现,该存储器被格式化以由一个或多个通用处理器和/或应用程序特定的处理器执行。
在一个实施方案中,驱动器控制器210可以包括处理器230、缓冲管理器235和介质控制器240。驱动器控制器210可经由处理器230来处理与主机接口逻辑部件220、存储设备205与存储设备205的主机(例如,操作系统、主机硬件系统等)之间的接口结合的读取和写入请求。驱动器缓冲器215可暂时保存用于存储设备205的内部操作的数据。例如,主机可将数据发送到存储设备205,并请求将数据存储在驱动介质225上。驱动器控制器210可处理该请求并将所接收的数据存储在驱动介质225中。在一些情况下,存储在驱动器介质225中的数据的一部分可以被复制到驱动器缓冲器215中,并且处理器230可以处理或修改该数据副本并且/或者执行与临时保留在驱动器缓冲器215中的数据副本相关的操作。当处理请求时,驱动器控制器210可与ECC单元245通信,以检测和校正数据中可能存在的任何错误。ECC单元245被配置为检测存在于正在存储的数据或从存储设备205检索的数据中的错误,并执行错误恢复操作以使数据恢复到其适当的值。
虽然在驱动器控制器210外部进行了描绘,但在一些实施方案中,性能监视器130可包括位于驱动器控制器210内的软件、固件和/或硬件。例如,性能监视器130可包括以下中的至少一部分:处理器230、缓冲器管理器235和/或介质控制器240。在一个示例中,性能监视器130可包括被配置为由处理器230、缓冲器管理器235和/或介质控制器240执行的一个或多个指令。性能监视器130可被配置为至少部分地基于确定待处理工作请求的响应时间已超过执行时间阈值来分配附加资源,以执行待处理工作请求。
在示例性实施方案中,驱动介质225可包括在SSD存储设备中使用的任何类型的NAND单元技术。在一些实施方案中,驱动介质225可包括SLC NAND技术、MLC NAND技术、三级单元(TLC)NAND技术、各种NAND技术的任何组合,或者甚至其他级别单元的NAND技术(例如,4、5、6等)。如图2中所示,驱动介质225示例性地包括SLC块250、MLC或TLC块260和内部页面缓冲器270。SLC块250包括任何数量的SLC页面255-1至255-n。MLC/TLC块260包括任何数量的MLC或TLC页面265-1至265-n。
图3示出了由系统100上的性能监视器130创建的环境300的框图。环境300可使用一个或多个处理器、存储器和/或一个或多个存储设备来实现。性能监视器130可包括请求管理部件305、错误检测部件310、恢复操作部件315、响应时间部件320、资源分配部件325和输出部件330。性能监视器130可以是图1和/或图2的性能监视器130的一个示例。性能监视器130的部件可被配置为执行关于下面更详细描述的方法600描述的任何功能。
请求管理部件305被配置为从一个或多个其他计算设备(例如,主机计算设备)接收工作请求。在接收到工作请求时,请求管理部件305可被配置为确定工作请求的到达时间。可跟踪每个工作请求的到达时间,作为确定工作请求的响应时间和总响应时间的一部分。
请求管理部件305可被配置为还在争夺有限的可用计算资源的多个工作请求之间进行调解。有时,请求管理部件305可接收比可以立即完成的工作请求更多的工作请求。在此类情况下,请求管理部件305可能必须确定首先要执行哪些工作请求,以及哪些工作请求可以等到稍后再执行和完成。
错误检测部件310被配置为确定在执行包括在工作请求中的一个或多个操作时是否发生错误。在执行工作请求期间,会以某种概率发生错误或失败。错误检测部件310可被配置为执行多个错误检测算法,以确定在作为工作请求主题的底层数据中是否发生错误,或者在执行操作本身期间是否发生错误。
恢复操作部件315被配置为执行一个或多个错误恢复操作以弥补已经检测到的错误。由恢复操作部件315实现的特定错误恢复操作可取决于检测到的错误的类型。
响应时间部件320被配置为估计和/或确定由性能监视器130正在接收的工作请求的响应时间。在一些实施方案中,估计特定工作请求的响应时间可包括将当前时间与特定工作请求的到达时间进行比较,并且至少部分地基于当前时间和到达时间之间的差来确定响应时间。在其他实施方案中,可使用其他估计技术来确定工作请求的响应时间。
响应时间部件320还被配置为确定响应时间是否超过执行时间阈值。这通过将响应时间与执行时间阈值进行比较来完成。在一些实施方案中,执行时间阈值等于执行工作请求的平均执行时间。在其他实施方案中,执行时间阈值可由用户通过用户输入来设置和/或修改。
响应于确定工作请求的响应时间超过执行时间阈值,资源分配部件325被配置为分配附加计算资源来完成工作请求。在一些实施方案中,资源分配部件325可分配附加计算资源以执行工作请求并暂停其他进程。在其他实施方案中,资源分配部件325可分配附加资源以执行由性能监视器130正在进行的一个或多个错误恢复操作。
输出部件330被配置为确定工作请求是否已经完成。如果工作请求已经完成,则输出部件被配置为将完成的工作请求的结果输出到工作请求的发起者(例如,主机计算设备)。在一些实施方案中,输出部件330被配置为确定工作请求的完成时间。输出部件330可通过取得完成时间和到达时间的差来确定总响应时间。
图4示出了根据本公开的各个方面的执行工作请求的示例性过程400的图形表示。过程400的至少一个方面可结合图1的系统100、图2的存储设备205和/或图1、图2和图3中所示的性能监视器130来实现。过程400被示出为沿时间轴402发生。虽然图4的各个步骤被示出为沿时间轴402在特定时间发生,但是应当理解,每个步骤出现的确切及相对时间可不同于所示出的时间,其中包括不同的顺序、未示出的附加步骤,以及实现任何给定步骤的更短和更长的时间段。
在步骤404,系统100接收工作请求。如本申请中所使用的,工作请求可包括从主机设备接收的任何命令,以执行系统100能够执行的任何功能。例如,工作请求可包括向存储介质110写入数据或从存储介质110读取数据的请求。通常,系统100将具有一次处理多个请求的一些过程。例如,系统100可在先入先出(FIFO)的基础上执行工作请求,或者系统100可基于优先级执行工作请求,其中不同的工作请求基于一些因素得到不同的优先级。
一旦系统100确定工作请求准备好被执行,则在步骤406,系统100将开始执行工作请求。在执行工作请求期间,系统100可在步骤408确定存在一个或多个错误。这些错误可能包括写入存储介质110的数据中的错误,从存储介质110读取的数据中的错误,或者可包括在执行工作请求期间可能发生的其他错误。如果检测到的错误具有特定类型,则在步骤410,系统100可执行一个或多个错误恢复操作来校正所识别的错误。如本申请中所使用的,错误恢复操作可包括能够验证或确定任何类型的数据的正确值的任何过程或操作。在一些实施方案中,步骤408或步骤410可以由系统100执行,也可以不由系统100执行。
一旦完成任何错误恢复操作,在步骤412,系统100完成工作请求并输出所请求的工作请求的结果。从接收工作请求(步骤404)到完成工作请求(步骤412)的时间是工作请求的总响应时间414。如本应用中所使用的,响应时间指示部分地执行工作请求的时间段。这意味着响应时间从接收到特定工作请求开始,并且可表示在步骤412完成工作请求之前的多个时间段中的任一时间段。例如,工作请求的响应时间可指示接收到工作请求(步骤404)的时间和系统开始执行工作请求(步骤406)的时间之间的时间段;或者响应时间可指示开始执行工作请求(步骤406)的时间和开始执行错误恢复操作(步骤410)的时间之间的时间段。根据定义,特定工作请求的响应小于该特定工作请求的总响应时间414。
图5示出了根据本公开的各个方面的用于执行工作请求的总响应时间414的分布502的图形表示500。分布502表示上文描述的系统100的工作请求的响应时间的假想分布,并且在此仅为了说明的目的而给出。
该示例性分布502根据工作请求的总响应时间绘制系统的每个工作请求。横轴表示工作请求的总响应时间414。纵轴表示具有特定总响应时间414的工作请求的数量。如图5所示,大多数工作请求具有相对较短的总响应时间414,并且由系统100相当快速地完成。然而,一些工作请求具有较长的总响应时间414,并且可被称为分布502的异常值504。通常,异常值504工作请求的总响应时间414是由正在被系统100执行的许多错误恢复操作产生的。在工作请求期间执行的错误恢复操作越多,接收工作请求(步骤404)的时间和完成工作请求(步骤412)的时间之间的时间量越大。异常值504导致由系统100执行的工作请求的总响应时间414中的大部分变化。
基于分布502,可确定系统100的总响应时间414的平均值。平均总响应时间可被表征为分布502的平均值506、中位数508或模式510。在其他实施方案中,平均总响应时间可由另一种功能或算法表征。如前所述,系统100或存储设备205的频繁使用者希望具有稳定的性能。为了限制系统100执行工作请求时的总响应时间的变化,性能监视器130被配置为将附加计算资源分配给超过执行时间阈值的工作请求。
图6是示出根据本公开的各个方面的用于限制存储设备中的性能变化的方法600的示例的简化流程图。方法600的一个或多个方面可被实现为由计算机系统(例如,图1的系统100、图2的存储设备和/或图1、图2和图3所示的性能监视器130)执行的计算机化程序、子程序和/或指令。在一些示例中,后端服务器、计算设备和/或存储设备可执行一组或多组代码以控制后端服务器、计算设备和/或存储设备的功能元件来执行下文所述的一个或多个功能。另外或另选地,后端服务器、计算设备和/或存储设备可使用专用硬件来执行下文描述的一个或多个功能。
在框605处,系统100可从另一个计算设备(例如,主机计算设备)接收工作请求。该工作请求可包括要系统100执行一个或多个操作的指令。在一些实施方案中,该工作请求可包括执行从系统100的读取操作、对系统100的写入操作、其他类型的操作的请求,或者该工作请求可包括任何类型的操作的混合工作负载。
在接收到工作请求时,系统100可被配置为确定该工作请求的到达时间。可跟踪每个工作请求的到达时间,作为确定工作请求的响应时间和总响应时间的一部分。在一些实施方案中,可利用工作请求的到达时间为其添加时间戳。在其他实施方案中,系统100可维护将工作请求与到达时间相关联的日志。在其他实施方案中,将工作请求与其各自的到达时间相关联的其他方法可由系统100实现。
系统100可被配置为还在争夺有限的可用计算资源的多个工作请求之间进行调解。有时,系统100可接收比可以立即完成的工作请求更多的工作请求。在此类情况下,系统100可能必须确定首先要执行哪些工作请求,以及哪些工作请求可以等到稍后再执行和完成。例如,系统100可使用FIFO系统来确定首先要完成哪些工作请求。在另一个示例中,系统100可使用优先级系统来确定首先要执行哪些工作请求。此类优先级系统可至少部分地基于每个工作请求的属性来确定优先级,其中某些类型的工作请求具有比其他类型的工作请求更高的优先级。此类优先系统还可以由另一个计算设备(例如,主机计算设备)来确定,并被发送到系统100。在这种情况下,系统100可按由另一个计算设备指定的优先级来执行工作请求。在其他实施方案中,可实现其他类型的工作请求优先级系统。
在框610处,系统100确定在执行包括在工作请求中的一个或多个操作时是否发生错误。在执行工作请求期间,会以某种概率发生错误或失败。例如,在读取操作期间,可能错误地解释存储单元中存在的电荷,从而导致系统100″误读″存储器单元。在此类示例中,本来意图存储为一,相反被解释为零。这将导致底层数据中的错误。系统100可被配置为执行多个错误检测算法,以确定在作为工作请求主题的底层数据中是否发生错误,或者在执行操作本身期间是否发生错误。可能检测到的错误类型可包括由读取干扰(过多的读取泄漏电荷和偏移值)导致的错误、过度编程错误、和/或没有对所有附近单元进行编程而引起的编程不足错误。错误检测算法的示例可包括Bose-Chaudhuri-Hocquenghem Coding(BCH)、低密度奇偶校验(LDPC)或任何其他类型的适当的错误检测算法。
如果在框610处没有检测到错误,则系统100移至框620,并开始进行方法600中的下一个步骤。如果检测到一个或多个错误,则系统100移至框615并执行一个或多个错误恢复操作,以弥补已经检测到的错误。由系统100执行的特定错误恢复操作可取决于所检测到的错误的类型。在一些实施方案中,错误恢复操作可包括重新读取存储设备的一个或多个存储器单元以及比较所述值以更好地确定哪个数据值是正确的值。在其他实施方案中,错误恢复操作可包括外部代码恢复操作、闪速存储器上的电压移位、迭代错误校正编码算法的另一次迭代,或任何其他类型的错误校正编码算法。
在框620处,系统100估计由系统100正在接收的工作请求的响应时间。工作请求的响应时间指示系统100部分地执行工作请求所花费的时间。工作请求的总响应时间指示系统100完成工作请求所花费的时间。在一些实施方案中,估计特定工作请求的响应时间可包括将当前时间与特定工作请求的到达时间进行比较,并且至少部分地基于当前时间和到达时间之间的差来确定响应时间。在其他实施方案中,可使用其他估计技术来确定工作请求的响应时间。
在框625处,系统100确定响应时间是否超过执行时间阈值。这通过将响应时间与执行时间阈值进行比较来完成。在一些实施方案中,执行时间阈值等于执行工作请求的平均执行时间。平均执行时间可至少部分地基于表示完成的工作请求(例如,图5中所示的分布502)的过去总响应时间的历史数据来确定。在一些实施方案中,平均执行时间可以是图5中表示的分布502的平均值506、中位数508或模式510中的任一者。在其他实施方案中,可使用某种其他类型的平均算法来确定平均执行时间。在另外的实施方案中,执行时间阈值可以不基于历史数据的平均值,而是可至少部分地基于历史数据的其他算法或分析。例如,可基于历史总响应时间的特定百分位数来设置执行时间阈值。在另外的实施方案中,执行时间阈值可由用户通过用户输入来设置和/或修改。在另外的实施方案中,可基于系统100的硬件、固件或软件的能力来确定执行时间阈值。
如果工作请求的响应时间不超过执行时间阈值,则系统100移至方法600的框635。如果工作请求的响应时间超过执行时间阈值,则系统100移至方法600的框630。在框630处,系统100分配附加计算资源以完成工作请求,以努力减少工作请求的总响应时间。在某些情况下,较长的响应时间可能是因为一次处理过多的工作请求而引起的。在这种情况下,系统100将分配附加的计算资源来执行工作请求并暂停其他进程。
在一些实施方案中,系统100可分配附加资源来执行由系统100正在进行的一个或多个错误恢复操作。通常,更长的总响应时间可归因于错误恢复操作的执行。在这种情况下,分配附加的计算资源可足以减少工作请求的估计总响应时间。在一些实施方案中,将附加计算资源分配给各种操作可包括改变各种操作的计算优先级。例如,响应时间超过执行时间阈值的工作请求的错误恢复操作可被给予对计算资源的最高优先级。因此,系统100可使用附加计算资源,通过暂停其他较低优先级的操作直到较高优先级的操作完成来完成错误恢复操作。在一些实施方案中,可在执行框610,615之前执行方法600的框620,625,630中的一个或多个框。在一些实施方案中,用于分配附加计算资源以执行错误恢复操作的优先级系统,不同于先前描述的用于管理工作请求的优先级系统。
在框635处,系统100确定工作请求是否已经完成。如果工作请求已经完成,则系统100移至方法600的框640。在框640处,系统100将完成的工作请求的结果输出到工作请求的发起者(例如,主机计算设备的)。如果工作请求尚未完成,则系统100返回到框610并执行框610,615,620,625,630,635。在一些实施方案中,框635处的系统100可确定工作请求的完成时间。系统100可通过取得完成时间和到达时间的差来确定总响应时间。
可使用参考图1至图3描述的性能监视器130和/或其他部件来执行方法600的多个框。例如,方法600的步骤可由图3中描述的任何部件实现。因此,方法600可限制存储设备中的性能变化。应当注意,方法600仅仅是一个具体实现方式,并且可重新排列、省略和/或以其它方式修改方法600的操作,使得可实现和预期其他的实现方式。
上文陈述的具体实施方式结合附图描述了一些示例,但并不表示这些示例是可以被实现的全部示例或者权利要求范围内的全部示例。当在本说明书中使用时,术语″示例″和″示例性″表示″用作示例、实例或说明″,而不是″优选″或″优于其他实例″。具体实施方式包括具体细节,其目的在于提供对所述技术的理解。然而,这些技术可以在没有这些具体细节的情况下实施。在一些情况下,已知的构造和装置示出于框图中,以避免模糊所述实例的概念。
可以使用各种不同技术中的任何一种来代表信息和信号。例如,可用电压、电流、电磁波、磁场或粒子、光场或粒子或它们的任何组合来代表可以在上述说明中被引用的数据、指令、命令、信息、信号、比特、符号和芯片。
可以使用通用处理器、数字信号处理器(DSP)、ASIC、FPGA或其他可编程逻辑器件、离散的栅极或晶体管逻辑、离散的硬件部件来实现或执行与本公开相关的各种示例性块和部件。通用处理器可以是微处理器,但是另选地,该处理器可以是任何常规的处理器、控制器、微控制器和/或状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器、多个微处理器的组合,与DSP芯结合的一个或多个微处理器和/或任何其他这样的配置。
这里描述的功能可以以硬件、由处理器执行的软件、固件或它们的任何组合的形式来实现。如果以由处理器执行的软件的形式实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。其他实例和实施方式均在本公开和所附权利要求的范围和精神内。例如,由于软件的性质,可以使用由处理器执行的软件、硬件、固件、硬连线或它们的任何组合来实现上述功能。特征实现功能还可以物理性地位于各种位置,包括被分布使得部分功能在不同的物理位置上实现。
如本文所用,在权利要求书中,当术语″和/或″用于两个或更多个项目的列表时,意指所列项目中的任何一个项目可被单独使用,或者可使用所列项目中的两个或更多个项目的任意组合。例如,如果组合物被描述为含有组分A、B和/或C,组合物可以包括单独的A;单独的B;单独的C;A和B的组合;A和C的组合;B和C的组合;或A、B和C的组合。此外,如本文所用,在权利要求书中,当″或″用于项目列表时(例如,以短语诸如″至少一个″或″一个或多个″开头的项目列表)指示分离的列表,使得例如列表″A、B或C中的至少一个″表示A或B或C或AB或AC或BC或ABC(即A和B和C)。
此外,包含在其他部件中或与其他部件分开的部件的任何公开均应被认为是示例性的,因为可以潜在地实施多个其他体系结构以实现相同的功能,包括将所有、绝大部分和/或某些元件作为一个或多个统一的结构和/或单独的结构并入。
计算机可读介质包括计算机存储介质和通信介质,包括有助于将计算机程序从一个地方传输到另一个地方的任何介质。存储介质可以是可由通用或专用计算机访问的任何可用介质。以示例而非限制的方式,计算机可读介质可包括RAM、ROM、EEPROM、闪存、CD-ROM、DVD或其他光盘存储器、磁盘存储器或其他磁存储设备或任何其它介质,所述的其他介质可以用于以指令或数据结构的形式携带或存储期望的程序编码方式,并且可以由通用或专用计算机或通用或专用处理器访问。而且,任何连接均被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(如红外、无线电和微波)从网站、服务器或其他远程来源传输软件,则所述的同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外、无线电和微波)包括在介质的定义中。如本文所使用的磁盘和光盘包括激光唱片(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁的方式再现数据,而光盘用激光以光学方式再现数据。上述组合也涵盖在计算机可读介质的范围内。
提供本公开的上述说明以使本领域的技术人员能够制作或使用本公开。本公开的各种修改对于本领域的技术人员将是显而易见的,并且在不脱离本公开的范围的情况下,本文定义的一般原理可以应用于其它变型。因此,本公开不限于本文所述的示例和设计,而是符合与所公开的原理和新颖特征一致的最广泛的范围。
本公开可特别适用于安全系统应用。本公开可特别适用于存储系统应用。在一些实施例中,概念、技术说明、特征、方法、想法和/或说明可特别适用于存储和/或数据安全系统应用。根据本公开,针对这些具体应用的系统的独特优点是显而易见的。
在本公开中描述和/或示出的过程参数、行为和步骤仅以示例的方式给出,并且可根据需要更改。例如,尽管可以以特定顺序示出或论述所示和/或描述的步骤,但是这些步骤不一定需要按照所示或论述的顺序执行。本文描述和/或示出的各种示例性方法还可以省略在此描述或示出的一个或多个步骤,或者包括除了所公开的步骤之外的其他步骤。
此外,尽管在全功能计算系统的上下文中已经描述和/或示出了多种实施例,但是这些示例性实施例中的一个或多个可以作为各种形式的程序产品分配,无论用于实际执行分发的计算机可读介质的具体类型为何。本文所公开的实施方案还可以使用执行特定任务的软件部件来实现。这些软件部件可包括可存储在计算机可读存储介质上或计算系统中的脚本、批处理或其他可执行文件。在一些实施方案中,这些软件部件可允许和/或指示计算系统执行本文所公开的一个或多个示例性实施方案。
为了说明的目的,已经参考具体实施例描述了该描述。然而,上述的说明性讨论并非旨在穷举或将本系统和方法限制为所讨论的具体形式。根据上述教导内容可以对本公开进行许多修改和改变。选择和描述实施例是为了解释本系统和方法及其实际应用的原理,以使本领域技术人员能够利用本发明的系统、装置和方法以及具有各种修改形式、适用于各种预期的特定用途的各种实施例。

Claims (20)

1.一种存储设备,所述存储设备包括:
控制器,所述控制器用于:
接收执行一个或多个操作的请求;
估计所述请求的响应时间,所述响应时间指示所述控制器部分地执行所述请求所花费的持续时间;
确定所述响应时间超过执行时间阈值;以及
在确定所述响应时间超过所述执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
2.根据权利要求1所述的存储设备,所述控制器用于:
确定所述请求的到达时间,所述到达时间是所述控制器接收到所述请求的时间。
3.根据权利要求2所述的存储设备,所述控制器用于:
利用所述到达时间给所述请求添加时间戳。
4.根据权利要求2所述的存储设备,所述控制器用于:
将所述请求的所述到达时间记录在到达日志中。
5.根据权利要求2所述的存储设备,所述控制器用于:
将当前时间与所述到达时间进行比较;以及
基于所述当前时间和所述到达时间之间的差来确定所述响应时间。
6.根据权利要求1所述的存储设备,所述控制器用于:
确定在执行包括在所述请求中的所述一个或多个操作期间已发生错误;以及
执行所述一个或多个错误恢复操作以弥补已检测到的错误。
7.根据权利要求1所述的存储设备,其中所述请求的所述一个或多个操作包括读取操作和写入操作两者的混合工作负载。
8.根据权利要求1所述的存储设备,其中所述执行时间阈值等于执行所述请求的平均执行时间。
9.根据权利要求1所述的存储设备,所述控制器用于:
分配所述一个或多个错误恢复操作以对所述存储设备的资源具有最高优先级。
10.根据权利要求1所述的存储设备,其中所述存储设备是固态驱动器(SSD)存储设备。
11.根据权利要求1所述的存储设备,其中所述一个或多个错误恢复操作包括重新读取所述存储设备的一个或多个存储器单元。
12.根据权利要求1所述的存储设备,其中所述一个或多个错误恢复操作包括外部代码恢复操作。
13.一种限制存储设备中的性能变化的方法,所述方法包括:
由所述存储设备的控制器接收执行一个或多个操作的请求;
估计所述请求的响应时间,所述响应时间指示所述控制器部分地执行所述请求所花费的持续时间;
确定所述响应时间超过执行时间阈值;以及
在确定所述响应时间超过所述执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
14.根据权利要求13所述的方法,还包括:
由所述控制器确定所述请求的到达时间,所述到达时间是所述控制器接收到所述请求的时间。
15.根据权利要求14所述的方法,其中估计所述响应时间还包括:
将当前时间与所述到达时间进行比较;以及
基于所述当前时间和所述到达时间之间的差来确定所述响应时间。
16.根据权利要求13所述的方法,还包括:
确定在执行包括在所述请求中的所述一个或多个操作期间已发生错误;以及
执行所述一个或多个错误恢复操作以弥补已检测到的错误。
17.根据权利要求13所述的方法,其中所述执行时间阈值等于执行所述请求的平均执行时间。
18.根据权利要求13所述的方法,其中为执行所述一个或多个错误恢复操作分配更多资源还包括分配所述一个或多个错误恢复操作,以对所述存储设备的资源具有最高优先级。
19.根据权利要求13所述的方法,其中所述一个或多个错误恢复操作包括重新读取所述存储设备的一个或多个存储器单元。
20.一种被配置用于限制存储设备中的性能变化的计算设备,所述计算设备包括:
处理器;
存储器,所述存储器与所述处理器进行电子通信,所述存储器存储计算机可执行指令,当所述计算机可执行指令由所述处理器执行时,使所述处理器执行以下步骤:
由所述存储设备的控制器接收执行一个或多个操作的请求;
估计所述请求的响应时间,所述响应时间指示所述控制器部分地执行所述请求所花费的持续时间;
确定所述响应时间超过执行时间阈值;以及
在确定所述响应时间超过所述执行时间阈值后,分配附加资源来执行一个或多个错误恢复操作。
CN201710403593.XA 2016-06-01 2017-06-01 限制存储设备中的性能变化的技术 Active CN107451006B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/170,709 US10423500B2 (en) 2016-06-01 2016-06-01 Technologies for limiting performance variation in a storage device
US15/170,709 2016-06-01

Publications (2)

Publication Number Publication Date
CN107451006A true CN107451006A (zh) 2017-12-08
CN107451006B CN107451006B (zh) 2022-03-18

Family

ID=60483316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710403593.XA Active CN107451006B (zh) 2016-06-01 2017-06-01 限制存储设备中的性能变化的技术

Country Status (4)

Country Link
US (2) US10423500B2 (zh)
JP (1) JP2017215966A (zh)
KR (1) KR102219826B1 (zh)
CN (1) CN107451006B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046007A (zh) * 2018-10-12 2020-04-21 伊姆西Ip控股有限责任公司 管理存储系统的方法、装置和计算机程序产品

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI610292B (zh) * 2015-11-19 2018-01-01 瑞鼎科技股份有限公司 驅動電路及其運作方法
KR20180114972A (ko) * 2017-04-11 2018-10-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11023166B2 (en) * 2018-08-08 2021-06-01 Micron Technology, Inc. Quality of service control for read operations in memory systems
US11327767B2 (en) * 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event
CN116578453B (zh) * 2023-04-25 2024-01-16 深圳市晶存科技有限公司 降低存储芯片不良率的方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233502A1 (en) * 2002-06-14 2003-12-18 Hitachi, Ltd. Method and apparatus for storage system
US7409586B1 (en) * 2004-12-09 2008-08-05 Symantec Operating Corporation System and method for handling a storage resource error condition based on priority information
US20120221730A1 (en) * 2011-02-28 2012-08-30 Fujitsu Limited Resource control system and resource control method
CN102656566A (zh) * 2009-12-17 2012-09-05 国际商业机器公司 固态存储系统中的数据管理
JP2013094007A (ja) * 2011-10-27 2013-05-16 Sanyo Electric Co Ltd 電気自動車の充電システム
US20140372607A1 (en) * 2010-03-15 2014-12-18 Cleversafe, Inc. Adjusting allocation of dispersed storage network resources
US20150089278A1 (en) * 2013-09-23 2015-03-26 Seagate Technology Llc Variable data recovery scheme hierarchy
CN104685475A (zh) * 2012-08-31 2015-06-03 惠普发展公司,有限责任合伙企业 选择在数据备份或恢复操作中要使用的资源
CN105224475A (zh) * 2014-05-30 2016-01-06 国际商业机器公司 用于调整存储装置的分配的方法和装置

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471631A (en) * 1992-10-19 1995-11-28 International Business Machines Corporation Using time stamps to correlate data processing event times in connected data processing units
US5712976A (en) * 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
US6338151B1 (en) * 1998-08-21 2002-01-08 International Business Machines Corporation Input/output recovery which is based an error rate and a current state of the computer environment
JP3959516B2 (ja) * 2001-08-06 2007-08-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、cpu資源プロバイダ、クライアント装置、処理サービスの提供方法、およびプログラム
US6915386B2 (en) * 2002-06-05 2005-07-05 Internation Business Machines Corporation Processing service level agreement (SLA) terms in a caching component of a storage system
US7240115B2 (en) * 2002-12-10 2007-07-03 International Business Machines Corporation Programmatically allocating memory among competing services in a distributed computing environment
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
JP2005293164A (ja) * 2004-03-31 2005-10-20 Fuji Electric Fa Components & Systems Co Ltd タスク監視方式
US20060085375A1 (en) * 2004-10-14 2006-04-20 International Business Machines Corporation Method and system for access plan sampling
US7389396B1 (en) * 2005-04-25 2008-06-17 Network Appliance, Inc. Bounding I/O service time
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7596657B2 (en) * 2006-01-13 2009-09-29 Paul Kaler Increased storage capacity for solid state disks using data compression
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7913051B1 (en) * 2006-12-22 2011-03-22 Emc Corporation Methods and apparatus for increasing the storage capacity of a zone of a storage system
JP5073348B2 (ja) * 2007-04-04 2012-11-14 株式会社日立製作所 アプリケーション管理支援システム、管理計算機、ホスト計算機、及びアプリケーション管理支援方法
JP4414452B2 (ja) * 2007-08-27 2010-02-10 富士通株式会社 記憶装置および当該記憶装置において作動中の増設記憶装置を停止する停止方法
US8141151B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Non-intrusive monitoring of services in a service-oriented architecture
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
US7831682B2 (en) * 2008-08-08 2010-11-09 Amazon Technologies, Inc. Providing a reliable backing store for block data storage
US8332857B1 (en) * 2008-12-30 2012-12-11 Teradota Us, Inc. Database system having a regulator that performs workload regulation based on optimizer estimates
US9804943B2 (en) * 2009-10-16 2017-10-31 Sap Se Estimating service resource consumption based on response time
JP5364600B2 (ja) * 2010-01-15 2013-12-11 富士通テレコムネットワークス株式会社 監視制御システム、被監視制御装置およびサーバ
US8862845B2 (en) * 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US20180217855A1 (en) * 2011-01-14 2018-08-02 Google Inc. Estimating wait times for requests
US8694752B2 (en) * 2011-02-01 2014-04-08 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US8555281B1 (en) * 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
KR101835604B1 (ko) * 2011-06-03 2018-03-07 삼성전자 주식회사 메모리를 위한 스케줄러
CN103092526B (zh) 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
EP2797005B1 (en) 2011-12-19 2017-08-16 Fujitsu Limited Load distribution system
US8751757B1 (en) * 2011-12-30 2014-06-10 Emc Corporation Acquisition and kernel memory storage of I/O metrics
US9659041B2 (en) * 2012-01-30 2017-05-23 Oracle International Corporation Model for capturing audit trail data with reduced probability of loss of critical data
US9075913B2 (en) * 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
EP2828751B1 (en) * 2012-03-21 2019-05-01 Tier 3, Inc. Cloud application scaling framework
US8966213B2 (en) * 2012-07-12 2015-02-24 International Business Machines Corporation Granting and revoking supplemental memory allocation requests
US9021339B2 (en) * 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9280296B2 (en) * 2013-05-23 2016-03-08 Globalfoundries Inc. Recovery from failure of primary storage volumes by using mirrored data maintained with host timestamps
US9239845B2 (en) * 2013-12-24 2016-01-19 Hitachi, Ltd. Backup system
KR20150083713A (ko) * 2014-01-10 2015-07-20 삼성전자주식회사 자원 관리를 위한 전자 장치 및 방법
US9547445B2 (en) * 2014-01-14 2017-01-17 Netapp, Inc. Method and system for monitoring and analyzing quality of service in a storage system
US9411834B2 (en) * 2014-01-14 2016-08-09 Netapp, Inc. Method and system for monitoring and analyzing quality of service in a storage system
US9766965B2 (en) * 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
US10169082B2 (en) * 2016-04-27 2019-01-01 International Business Machines Corporation Accessing data in accordance with an execution deadline
US10229013B2 (en) * 2016-10-13 2019-03-12 International Business Machines Corporation Generating a health condition message on a health condition detected at a server to send to a host system accessing the server
US10223220B2 (en) * 2016-10-13 2019-03-05 International Business Machines Corporation Processing a health condition message on a health condition to determine whether to perform a swap operation
US10564854B2 (en) * 2017-04-11 2020-02-18 Microsoft Technology Licensing, Llc Tracking internal latencies for load balancing of file server
JP6681377B2 (ja) * 2017-10-30 2020-04-15 株式会社日立製作所 リソースの割り当てを最適化するシステム及び方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233502A1 (en) * 2002-06-14 2003-12-18 Hitachi, Ltd. Method and apparatus for storage system
US7409586B1 (en) * 2004-12-09 2008-08-05 Symantec Operating Corporation System and method for handling a storage resource error condition based on priority information
CN102656566A (zh) * 2009-12-17 2012-09-05 国际商业机器公司 固态存储系统中的数据管理
US20140372607A1 (en) * 2010-03-15 2014-12-18 Cleversafe, Inc. Adjusting allocation of dispersed storage network resources
US20120221730A1 (en) * 2011-02-28 2012-08-30 Fujitsu Limited Resource control system and resource control method
JP2013094007A (ja) * 2011-10-27 2013-05-16 Sanyo Electric Co Ltd 電気自動車の充電システム
CN104685475A (zh) * 2012-08-31 2015-06-03 惠普发展公司,有限责任合伙企业 选择在数据备份或恢复操作中要使用的资源
US20150089278A1 (en) * 2013-09-23 2015-03-26 Seagate Technology Llc Variable data recovery scheme hierarchy
CN105224475A (zh) * 2014-05-30 2016-01-06 国际商业机器公司 用于调整存储装置的分配的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046007A (zh) * 2018-10-12 2020-04-21 伊姆西Ip控股有限责任公司 管理存储系统的方法、装置和计算机程序产品
CN111046007B (zh) * 2018-10-12 2023-08-18 伊姆西Ip控股有限责任公司 管理存储系统的方法、装置和计算机程序产品

Also Published As

Publication number Publication date
CN107451006B (zh) 2022-03-18
US10423500B2 (en) 2019-09-24
KR20170136449A (ko) 2017-12-11
US20170351582A1 (en) 2017-12-07
US20190391886A1 (en) 2019-12-26
KR102219826B1 (ko) 2021-02-23
US11216345B2 (en) 2022-01-04
JP2017215966A (ja) 2017-12-07

Similar Documents

Publication Publication Date Title
CN107451006A (zh) 限制存储设备中的性能变化的技术
US10055295B2 (en) Using spare capacity in solid state drives
US10079850B1 (en) Systems and methods for provisioning cyber security simulation exercises
US9165248B2 (en) Using global and local catastrophes across sub-populations in parallel evolutionary computing
US9244777B2 (en) Balanced distributed backup scheduling
US11003359B2 (en) Method and device for managing disk pool
US11385828B2 (en) Method and apparatus for calculating storage system available capacity
US20140281221A1 (en) Data processing
CN110442473A (zh) 一种非易失性数据存储方法、装置、电子设备及介质
US20170091010A1 (en) Introduction determination program, introduction determination device and introduction determination method
TWI447574B (zh) 記錄崩潰與預防崩潰的方法、電腦可讀媒體、資訊設備、與系統
US20210407539A1 (en) Flexible on-cylinder limit for drive performance management
CN104182296A (zh) 数据处理系统、数据处理设备以及存储介质
US8984252B2 (en) Extent consolidation and storage group allocation
CN113448770A (zh) 用于恢复数据的方法、电子设备和计算机程序产品
CN110413207B (zh) 降低存储系统的数据恢复时间的方法、设备和程序产品
US8429197B1 (en) Systems and methods for maintaining group membership records
CN112764665A (zh) 存储管理的方法、设备和计算机程序产品
CN108958658A (zh) 一种目标数据的获取方法及装置
CN103970860A (zh) 一种数据处理的方法、装置及系统
CN112748860B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US11340825B1 (en) Method, device, and computer program product for managing storage system
US11252061B1 (en) Distributed computation of graph embeddings for network traffic in virtual networks
US10831495B2 (en) Parallelization of numeric optimizers
CN113900809A (zh) 云计算管理平台实施复杂度评估的方法及应用

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