CN102770848B - 存储控制器中的转出任务的动态管理 - Google Patents

存储控制器中的转出任务的动态管理 Download PDF

Info

Publication number
CN102770848B
CN102770848B CN201180008003.4A CN201180008003A CN102770848B CN 102770848 B CN102770848 B CN 102770848B CN 201180008003 A CN201180008003 A CN 201180008003A CN 102770848 B CN102770848 B CN 102770848B
Authority
CN
China
Prior art keywords
speed
nvs
activity
memory device
occupancy
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
Application number
CN201180008003.4A
Other languages
English (en)
Other versions
CN102770848A (zh
Inventor
L.M.古普塔
K.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 CN102770848A publication Critical patent/CN102770848A/zh
Application granted granted Critical
Publication of CN102770848B publication Critical patent/CN102770848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了通过处理器促进经由设备适配器从写入高速缓存和NVS向存储设备池进行数据转移的方法、系统和计算机程序产品实施例。处理器基于用于特定存储设备的NVS的当前占用率和与该存储设备有关的转入活动性,自适应地改变转出速率。转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的一个或多个。这些因素通常与在高速缓存未命中事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。该组合在改善响应时间性能的同时保持NVS的期望整体占用率。

Description

存储控制器中的转出任务的动态管理
技术领域
本发明涉及一种计算机系统,并且更具体地涉及存储控制器中的转出(destage)任务的管理。
背景技术
诸如国际商业机械公司的企业存储服务器的高端存储控制器管理从联网主机向存储设备池的输入/输出(I/O)请求,其中,存储设备诸如为直接存取存储器(DASD)、独立磁盘冗余阵列(RAID阵列)、以及简单磁盘捆绑(JBOD)。存储控制器包括一个或多个主机总线适配器(HBA)卡,以通过网络和设备适配器(DA)与一个或多个主机通信,从而与存储设备通信。存储控制器也包括高速缓存(cache)存储器和非易失性存储器(NVS),其可以包括电池供电的随机存储存储器。
高速缓存(caching)是隐藏I/O等待时间的基本技术,并且被在存储控制器、文件系统和操作系统中广泛使用。存储网络行业协会(SINA)定义高速缓存(cache)为“用于减少从较低速存储器或设备读取数据或写入数据到较低速存储器或设备所需的有效时间的高速存储器或存储设备”。以下,将在存储控制器的上下文中讨论高速缓存技术,其中,快速但相对昂贵的随机存取存储器被用作对慢速但相对便宜的盘或存储设备的高速缓存。高速缓存存储器被用于快速访问从外部存储器入页(inpaged)(转入(staged))的数据,从而提供从存储器的读取数据访问请求,并且提供修改数据的缓冲。写入请求被写入到高速缓存并且被镜像在NVS中,继而被写入(转出)到外部存储设备。
读取高速缓存管理是被充分研究的学科。在此背景中存在大量的高速缓存替代技术,例如,LRU、CLOCK、FBR、LRU-2、2Q、LRFU、LIRS、MQ、ARC以及CAR。
写入高速缓存管理时发展中的学科。引入NVS,以便能够快速写入。通常,在没有NVS的情况下,必须同步地将每个数据写入直接写入(转出)到存储设备,以确保一致性、正确性、持久性和持续性。否则,服务器的故障可能会丢失高速缓存并导致数据的丢失。通常,主机写入速率超过存储设备的速度,因此在没有NVS的情况下数据转移将是瓶颈。NVS使得能够快速写入高速缓存,其中写入被镜像并安全地存储在NVS中,直到转移到外部存储设备。以后以异步方式从高速缓存转出(并且从NVS丢弃)数据,从而隐藏了存储设备的写入等待时间。高速缓存和NVS典型地存储用于多个存储设备的更新。为了保证写入的持续低等待时间,典型地,NVS中的数据必须被排出(drain),以便确保总是存在一些空的空间用于到来的写入;否则,后续写入将会变得实际上同步,这可能对主机写入的响应时间产生不利影响。另一方面,如果过于激进地排出写入,也通常不能完全利用写入缓存的好处,因为NVS高速缓存的平均使用量将通常较低。高速缓存比NVS更便宜且更大,因此NVS是写入数据的转出的瓶颈。
某些转出技术使用线性阈值方案,其限制用于特定存储设备的NVS的占用率,以避免单一存储设备的故障影响所有设备。其它技术基于NVS的整体占用率和与每个存储设备相关联的占用率,动态地改变向存储设备的转出速率。不顾新写入的速率而全速地写入,通常对于性能是不理想的,并且降低能够从存储控制器获得的最大写入吞吐量。期望的行为是简单地跟上到来的写入负载(即,写入请求),同时在NVS不被充满时保持NVS被大大地占用。NVS占用率越高,写入高速缓存越有效,因为其可以吸收向同一个逻辑地址的更多写入,从而,向存储设备的数据吞吐量更高效。
发明内容
考虑到上述情况,提供了用于通过处理器促进从写入高速缓存和NVS经由设备适配器向存储设备池进行数据转移的各种方法、系统和计算机程序产品实施例。所述处理器基于与特定存储设备有关的NVS的当前占用率和与该存储设备有关的转入活动性,自适应地改变转出速率。所述转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及所述存储设备的读取/写入速度中的一个或多个。这些因素通常与高速缓存未命中(miss)事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。这个组合在改善读取和写入响应时间的同时保持NVS的期望整体占用率。此方法跨不同类型的存储设备以及跨不同的设备速度,在不同类型地工作负载(读取、写入、顺序、随机)上改善了整体读取和写入性能。
根据本发明的一个实施例,对于每个存储设备,处理器根据与特定存储设备有关的NVS的当前存储占用率,自适应地改变从高速缓存的数据的转出速率。处理器根据与存储设备有关的当前转入活动性,自适应地调整转出速率。当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及存储设备的读取/写入速度中的一个或多个。如果转入活动性低,则所述调整的转出速率相对较高,并且如果转入活动性高,则所述调整的转出速率相对较低。处理器以调整的转出速率从高速缓存向存储设备转出数据,并从NVS丢弃数据。
处理器可以基于与特定存储设备有关的NVS的当前占用率以及与该存储设备有关的转入活动性,自适应地改变转出速率,以在改善读取和写入响应时间的同时保持NVS的期望整体占用率以及向存储设备的吞吐量。从主机到高速缓存/存储器测量吞吐量,其依赖于从高速缓存到存储器的吞吐量。从主机的角度测量读取/写入时间。
如果所述NVS的整体占用率超过高阈值(最大总占用率),则处理器可以将所述转出速率设置为最大,并且如果所述存储设备的占用率小于低阈值(最小设备占用率),则处理器可以将所述转出速率设置为最小。这些阈值可以是固定的或随工作负载变化。处理器可以配置为将针对任何单个存储设备的NVS的占用率限制为最大设备占用率。
处理器可以提供转出速率的索引表。处理器可以基于用于存储设备的NVS的当前设备占用率计算初始索引,并根据有关存储设备的当前转入活动性递增或递减初始索引。处理器从索引表读出调整的转出速率。
根据本发明的另一个实施例,对于每个存储设备,处理器自适应地改变从高速缓存转出数据的转出速率,以保持NVS的期望的总占用率,并增加向多个存储设备的写入吞吐量。处理器被配置为限制针对每个存储设备的NVS的设备占用率不大于最大设备占用率。NVS中的可用空间向所有存储设备的总最大分配超过NVS中的可用空间的百分之百。处理器通过当NVS的总占用率超过最大总占用率时将转出速率设置为最大、当NVS的设备占用率小于最小设备占用率时将转出速率设置为最小、并且在其它情况下基于当前设备占用率与最大设备占用率的比率而设置转出速率,来自适应地改变转出速率。处理器根据与存储设备有关的至少包括存储设备转入活动性和设备适配器使用的带宽(可能也包括设备适配器转入活动性和存储设备的读取/写入速度)的当前转入活动性,自适应地调整转出速率,以减小读取和写入响应时间。如果转入活动性低,则调整的转出速率相对较高,并且如果转入活动性高,则调整的转出速率相对较低。处理器以调整的转出速率从高速缓存向存储设备转出数据,并从NVS丢弃数据。
处理器可以被提供有转出速率的索引表,其中转出速率从对于最小索引的最小速率增加到对于最大索引的最大速率。处理器通过基于针对存储设备的NVS的当前设备占用率计算初始索引而自适应地改变转出速率;如果NVS的总占用率超过最大总占用率,则将初始索引设置为最大索引,如果NVS的设备占用率小于最小设备占用率,则将初始索引设置为最小索引,在其它情况下基于当前设备占用率与最大设备占用率的比率而设置初始索引。处理器通过根据与存储设备有关的当前转入活动性递增或递减初始索引来自适应地调整转出速率;如果存储设备转入活动性和设备适配器使用的带宽相对较高,则递减索引,或者,如果存储设备转入活动性和设备适配器使用的带宽相对较低,则递增索引。处理器根据调整的索引从表重读出调整的转出速率。
也公开了相关的系统和计算机程序产品实施例,并提供附加优点。
附图说明
现在将参考附图,仅通过示例的方式描述本发明的实施例,在附图中:
图1是示出可以实施根据本发明的装置和方法的存储系统的一个示例的高级框图;
图2是示出用于转出数据的方法的一个实施例的高级流程图;
图3是示出针对多个存储设备的NVS的占用率的图;
图4是示出与特定存储设备有关的转入活动性的存储系统的部分的图;
图5a和5b是示出基于NVS的当前占用率和关于存储设备的当前转入活动性二者而动态管理转出速率的图;
图6是示出用于转出数据的方法的一个实施例的流程图;
图7是示出用于转出数据的方法的一个实施例的流程图;以及
图8a和8b是在存在根据存储设备的转入活动性的转出速率的动态管理和不存在转出速率的动态管理的情况下的响应时间性能对比图。
具体实施方式
鉴于上述情况,提供用于通过单个处理器或多个处理器促进从写入高速缓存和NVS经由设备适配器向存储设备池的数据转移的各种方法、系统和计算机程序产品实施例。处理器基于关于特定存储设备的NVS的当前占用率以及关于该存储设备的转入活动性,自适应地改变转出速率。所述转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的一个或多个。这些因素(factor)通常与高速缓存未命中(miss)事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。该组合在改善读取和写入响应时间的同时保持NVS的期望整体占用率以及向存储设备的吞吐量。从主机到高速缓存/存储器测量吞吐量,其取决于从高速缓存到存储器的吞吐量。从主机的角度测量读取/写入时间。这种方法跨不同类型的存储设备以及跨不同的存储设备速度,在不同类型的工作负载(读取、写入、顺序、随机)上改善了整体读取和写入性能。
计算机网络架构可以包括通过网络互联的一个或多个计算机。网络可以包括例如局域网(LAN)、广域网(WAN)、因特网、内联网等等。在某些实施例中,计算机可以包括客户计算机和服务器计算机二者。一般而言,客户计算机可以发起通信会话,而服务器计算机可以等待来自客户计算机的请求。在某些实施例中,计算机和/或服务器可以连接到一个或多个内部或外部直接附接的存储系统(例如,硬盘驱动器、固态硬盘驱动器、磁带驱动器等)。这些计算机和直接附接的存储设备可以使用诸如ATA、SATA、SCSI、SAS、光纤通道等协议通信。计算机的任何一个或全部都可以包括高速缓存,用以存储从存储设备获取的数据。
在某些实施例中,计算机网络架构可以包括服务器背后的存储网络,诸如存储区域网络(SAN)或LAN(例如,当使用网络附接的存储器时)。该网络可以将服务器连接到一个或多个存储系统,诸如单独硬盘驱动器或固态硬盘驱动器、硬盘驱动器或固态硬盘驱动器的阵列、磁带驱动器、磁带库、CD-ROM库等。在网络是SAN的情况下,服务器和存储系统可以使用诸如光纤通道(FC)的网络标准。
图1示出连接到SAN102的存储系统100的一个实施例。存储系统100包含硬盘驱动器(HDD)和/或固态硬盘驱动器(SDD)的阵列,诸如RAID阵列。存储系统100的内部组件被示出,因为在某些实施例中转出技术可以在这样的存储系统100中实施,尽管它们也可以适用于其它存储系统100。如所示,存储系统100包括存储控制器104、一个或多个交换机106、以及诸如硬盘驱动器108或固态硬盘驱动器108的一个或多个存储设备108。存储控制器104可以使一个或多个主机(例如,开放系统和/或大型机服务器)能够访问一个或多个存储设备106中的数据。
在选择的实施例中,存储控制器104包括一个或多个服务器110。存储控制器104也可以包括主机适配器112和设备适配器113,以分别连接到主机设备和存储设备108。多个服务器110a、110b可以提供冗余以确保对于连接的主机数据总是可得。因此,当一个服务器110a失效时,另一服务器110b可以保持功能,以确保I/O能够在主机和存储设备108之间继续。这个过程可以被称为“故障转移(failover)”。
具有与图1中所示类似的架构的存储控制器104的一个示例是IBMDS8000TM企业存储系统。DS8000TM是提供盘存储的高性能、高容量存储控制器,其被设计为支持连续操作。DS8000TM系列型号可以使用IBM的POWER5TM服务器110a、110b,其可以与IBM的虚拟化引擎技术整合。尽管如此,这里公开的缓存装置和方法并不限定于IBMDS8000TM企业存储系统100,而是可以在相当或类似的存储系统中实施,而不论制造商、产品名称、或者与系统相关联的组件或组件名称。此外,可以从本发明的一个或多个实施例中获益的任何系统都被视为落入本发明的范围。因此,仅通过示例的方法呈现了IBMDS8000TM,并且其不意图限制本发明。
在选择的实施例中,每个服务器110可以包括一个或多个处理器114(例如,n路对称多处理器)和存储器116。存储器116可以包括易失性存储器(例如,RAM)以及非易失性存储器(例如,ROM、EPROM、EEPROM、硬盘、闪存等)。在某些实施例中,易失性存储器和非易失性存储器可以存储在处理器114上运行并且用于访问存储设备108中的数据的软件模块。服务器110可以保持这些软件模块的至少一个实例。这些软件模块可以管理对存储设备108中的逻辑卷的所有读取和存储请求。
存储器116包括易失性高速缓存118。每当主机(例如,开放系统或大型机服务器)执行读取操作时,服务器110可以从存储设备108获取数据,并在再次需求该数据的事件中将数据保持在高速缓存119中。如果主机再次请求该数据,则服务器110可以从高速缓存118获取该数据,而不是从存储设备108获取它,从而节省时间和资源。这被称作高速缓存命中(Cachehit)。
对于作为高速缓存未命中的主机读取(该追踪(track)当前不存在于高速缓存中),断开主机读取,从存储设备将数据转入到高速缓存,并且接着重连主机读取,并将数据从高速缓存读取到主机。从存储设备到高速缓存转入数据所花的时间量可以很大程度上取决于包括构成存储设备(HDD、SDD)的驱动器的读取/写入速度、对每个设备适配器配置的存储设备的数目、对每个设备适配器配置的存储设备的类型的混杂、设备适配器的整体使用的带宽(转入和转出任务)、以及对存储设备和设备适配器驱动的转入和转出任务的当前数目的多个因素。在一个实施例中,每个存储设备是RAID,其可以被称为“行列(rank)”。RAID具有多个类型(例如1、5、6、10)和不同的盘RPM速度,例如7k、10k、15k和SDD。读取响应时间部分由高速缓存未命中(cachemiss)的可能性、以及在高速缓存未命中的事件中从存储设备向高速缓存转入数据所花的时间量所确定。
存储器116也包括非易失性存储器120。当主机执行写入操作时,在认为主机写入完成时,服务器110将数据写入高速缓存118和NVS120二者。在以后的时间点上,服务器从高速缓存118将数据转出到存储设备并且从NVS120丢弃数据(因为不再需要数据的电池供电备份)。通常以足够跟上到来的写入负载(即,写入请求)的速率转出数据,同时在不充满NVS的情况下保持很大地占用NVS。如果NVS过满,则高速缓存写入未命中的可能性增加。NVS占用率越高,写入高速缓存越有效,因为其可以吸收向相同逻辑地址的更多写入,因此向存储设备的数据的吞吐量更高效。
处理器114被配置为运行软件模块,以动态管理存储控制器中的转出任务,并且更具体地,根据用于存储设备的NVS的当前占用率和关于该存储设备的转入活动性二者,适配针对该存储设备的转出速率。转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及存储设备的读取/写入速度中的一个或多个。以存储设备的转入活动性为因素在保持吞吐量水平的同时改善了读取/写入响应时间。更具体地,可以通过在条件允许时激进地(aggressively)排空NVS而改善主机写入响应时间,并且可以通过在条件要求时保守地排空NVS而改善读取响应时间。
现在参考图2,用于转出任务的动态管理的方法包括:针对每个存储设备,处理器根据用于特定存储设备的NVS的当前存储占用率自适应地改变200从高速缓存转出数据的转出速率。处理器根据关于存储设备的当前转入活动性自适应地调整202转出速率。当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的一个或多个。如果转入活动性是低的,则调整的转出速率相对较高,并且如果转入活动性是高的,则调整的转出速率相对较低。处理器以调整的转出速率将数据从高速缓存转出204到存储设备,并从NVS丢弃该数据。
适当地选择作为当前存储占用率和转入活动性的函数的转出速率,以针对给定计算环境优化整体读取/写入性能。更具体地,选择转出速率,以在减少平均读取和写入响应时间的同时保持高吞吐量。作为存储占用率的函数的初始转出速率可以被设置为高、低或标称(nominal)转出速率,并且作为当前转入活动性的函数而向上、向下、或上下调整。转出速率可以被提供为等式或表的形式。如在实施例中详细描述的,存储占用率和转入活动性可以被用于计算并调整转出速率表的索引(index)。
图3描绘了NVS120的实施例,其分别在NVS302a、302b、302c、302d和302e的部分中存储针对存储设备108a、108b、108c、108d和108e的池的主机写入的数据300。每个存储设备在NVS120中具有关联的当前存储占用率。通常,当前存储占用率越大,为该存储设备排出NVS的转出速率越高。
任何一个存储设备的当前存储占用率都可以不受限制(允许占用NVS的100%)或者可以限制为不超过最大设备占用率(例如,25%)。随后的技术确保了可以将NVS的部分分配给每个存储设备,以避免一个存储设备的失效或处理延迟阻止对其它存储设备的更新高速缓存在NVS中的情况。最大设备占用率在几个存储设备之中可以是均匀或不均匀的,并且可以是固定或不固定的。例如,最大设备占用率可以被计算为存储设备的存储容量的加权平均,或者存储设备上的后台操作的加权平均。可以建立最大设备占用率,使得NVS中的可用空间到所有存储设备的总最大分配超过NVS中的可用空间的百分之百。例如,如果为每五个存储设备中的每个分配最大设备占用率,则总最大分配将为125%。这是基于在任何给定时间都将有某些存储设备不正在使用它们的最大设备占用率的统计学假设。在指定最大设备占用率的情况下,基于当前设备占用率相对于其最大设备占用率的关系,适当地改变转出速率。
处理器可以考虑其它占用率参数以自适应地改变转出速率。如果NVS的总占用率超过最大总占用率,则处理器可以将转出速率设置为最大值。这个测试是通常要避免的、NVS过满并且可能导致写入高速缓存未命中的指示。因此,处理器为所有存储设备将转出速率设置为其最大值,以排出NVS,使其回到期望的占用率。例如,如果期望的总占用率为90%,则如果实际总占用率超过95%,则处理器可以以最大速率转出。如果NVS的设备占用率小于最小设备占用率,则处理器可以将该存储设备的转出速率设置为最小值(例如零)。这个测试是NVS对于特定存储设备过空的指示,其会降低向存储设备的吞吐量效率。例如,如果对于特定存储设备的占用率低于10%,则处理器可以暂停数据向该存储设备的转出。最大总占用率可以是固定或不固定的。例如,最大总占用率可以随着工作负载而变化。最小设备占用率可以是固定或不固定的,并且可以跨存储设备统一或不统一。
图4描绘了包括设备适配器113、交换机106和存储设备108a、108b和108c的存储系统100的部分,以示出与存储设备相关的各种转入活动性因素。第一转入活动性因素是存储设备转入活动性400。这个因素是从存储设备的当前转入(读取)的度量。第二转入活动性因素是设备适配器转入活动性402。这个因素是通过设备适配器从所有存储设备的当前转入(读取)活动性的度量。第三转入活动性因素是设备适配器使用的带宽404。这个因素是通过设备适配器从所有存储设备和向所有存储设备的当前转入(读取)和转出(写入)活动性的度量。第四转入活动性因素是存储设备406的读取/写入速度。这个因素是存储设备可以多快地读取/写入数据的度量。
如前所述,这些因素通常与读取高速缓存未命中事件中的读取响应时间相关联。这些因素通常不与转出数据相关联,并且特别地不用于自适应地调整转出速率。以存储设备的转入活动性中为因素在保持吞吐量水平的同时改善了读取/写入响应时间。更特别地,可以通过在条件允许时激进地排空NVS而改善主机写入响应时间,并且可以通过在条件要求时保守地排空NVS而改善读取响应时间。这种技术在减少写入或读取高速缓存未命中的数目上特别有效。甚至小的减少也会显著影响整体响应时间。
图5a和5b是将当前设备占用率和转入活动性关联到转出速率的实施例的图示。在存储器中存储转出速率的索引表500。转出速率从在最小索引(例如零)的最小速率(例如零)开始增加,并且增加到最大索引(例如13)的最大速率(例如60)。针对给定的计算环境,根据从方程或数值分析适当地生成该表。如图所示,转出速率与索引呈非线性。尽管通常不这样要求。处理器基于当前设备占用率计算初始索引。处理器基于如通过一个或多个转入活动性因素提供的当前转入活动性调整初始索引。处理器使用调整的初始索引,从表500中读出调整的转出速率。
在这个特定实施例中,基于用于存储设备的NVS的当前占用率将初始索引设置为标称值502。处理器基于转入活动性递增或递减该标称值;如果转入活动性高,则减小转出速率,以为转入活动性提供更多资源,并且如果转入活动性低,则提高转出速率,以更迅速地排出NVS。可替代地,处理器可以基于当前占用率将初始索引设置为高(低)值,并且仅基于转入活动性递减(递增)。效果是相同的。如果NVS的总占用率超过最大总占用率阈值,则处理器可以将索引设置为最大值504。类似地,如果设备占用率小于最小设备占用率,则处理器可以将索引设置为最小值506。在任一这样的极端情况下,可以不考虑转入活动性。
图6是基于NVS的占用率和关于存储设备的转入活动性二者,对每个存储设备动态管理转出速率的实施例的流程图。在这个实施例中,基于占用率将初始索引设置为标称值,并且基于每个转入活动性因素将其递增或递减。如果总占用率超过阈值TH1(最大总占用率),则处理器将索引设置为最大索引600并退出。如果设备占用率小于阈值TH2(最小设备占用率),则处理器将索引设置为最小索引602并退出。在其他情况下,处理器可以将初始索引设置为等于当前设备占用率与最大设备占用率的比率与索引数目的乘积604。在这个实施例中,初始索引与相对于最大设备占用率归一化(normalize)的当前设备占用率成线性比例。也可以使用从设备占用率到索引的其它映射。
处理器检查一个或多个转入活动性因素的每一个,并相应地递增或递减索引。处理器检查对存储设备的当前转入请求606。如果转入请求的数目小于低阈值TH3,则处理器递增初始索引608。如果转入请求的数目大于高阈值TH4,则处理器递减初始索引610。处理器检查设备适配器的当前使用的带宽612。如果使用的带宽小于低阈值TH5,则处理器递增初始索引614。如果使用的带宽大于高阈值TH6,则处理器递减初始索引616。处理器检查对设备适配器的当前转入请求618。如果转入请求的数目小于低阈值TH7,则处理器递增初始索引620。如果转入请求的数目大于高阈值TH8,则处理器递减初始索引622。处理器检查存储设备的速度624。如果设备速度高,则处理器递增索引626。如果设备速度低,则处理器递减索引628。针对每个转入活动性因素递增或递减索引的量取决于计算环境,并且可以通过环境的计算或数值分析设置。如果调整的索引超过最大索引,则处理器设置调整的索引等于最大索引,并且如果调整的索引小于最小索引,则处理器设置调整的索引等于最小索引630。
一旦(通过600和602的阈值处理,或者依照当前设备占用率和转入活动性604到630)设置了索引,处理器使用索引从表中提取调整的转出速率632。处理器以调整的转出速率从高速缓存向存储设备转出数据634。该技术被用于为池中的每个存储设备确定转出速率。重复该技术,以在条件变化时更新用于每个存储设备的转出速率。
图7是基于NVS的占用率和关于存储设备的转入活动性二者、在特定的计算中为每个存储设备动态地管理转出速率的实施例的流程图。在这个实施例中,基于占用率将初始索引设置为低值,并且基于转入活动性因素的测试组合而将其递增。如果总占用率超过90%,则处理器将索引设置为最大索引700并退出。如果设备占用率小于10%,则处理器将索引设置为702并退出。在其他情况下,处理器将初始索引设置为等于当前设备占用率对最大设备占用率的比率与索引的数目的乘积704。如果设备适配器上的使用的带宽小于70%,则处理器在存储设备是HDD时将索引递增为加二,在存储设备是SDD时将索引递增为加四706。如果存储设备上的转入活动性小于10并且设备适配器上的转入活动性小于40,则处理器将索引递增为加二708。阈值百分比和索引递增的量仅为代表。可以取决于计算环境而使用其它阈值和递增以及转入活动性因素的不同组合。如果索引大于最大索引,则处理器将索引设置为等于最大索引710。处理器使用索引从表中提取调整的转出速率712。处理器以调整的转出速率714从高速缓存向存储设备转出数据。
图8a和8b是将具有和不具有部分基于转入活动性的高速缓存技术的动态管理的高速缓存技术的性能进行比较的图。基线(baseline)方法仅基于NVS占用率管理转出速率,而本发明的实施例将NVS占用率与转入活动性相结合。图8a绘出具有转入活动性(实线)800和不具有转入活动性(虚线)802情况下平均响应时间(读取/写入)相对于每分钟DB事务数的关系。当用户数和每分钟的事务数增加时,组合NVS占用率和转入活动性的高速缓存管理提供更好的响应时间。环境超载的“拐点(knee)”向右移动。图8b是有转入活动性804和没有转入活动性806的情况下、288,000个用户大约每分钟35,000个DB事务时的读取计数桶(bucket)分配。短读取的百分比在两种技术中大致相等。以转入活动性为因素降低了长读取百分比,尽管量较小。然而,长读取中甚至小的改进都会对这些长读取的服务时间产生大的改进。在这个示例中,被消除的大于300毫秒的读取的0.11%将来自这些读取的服务时间的百分比降低了大约4个百分点。
通过通常仅与读取高速缓存未命中事件中的读取响应时间相关联的转入活动性因素与NVS占用率相结合,动态高速缓存管理技术跨不同类型的存储设备以及跨不同得设备速度,在不同类型的工作负载(读取、写入、顺序、随机)上改善了整体读取/写入性能。更具体地,通过在转入活动性允许时增加向存储设备的转出速率而改善写入响应时间,并且通过在转入活动性需要时减小转出速率来改善读取响应时间而不牺牲吞吐量。
本领域普通技术人员将认识到,本发明的方面可以作为系统、方法或计算机程序产品实施。因此,本发明的方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等等)、或组合软件及硬件方面的实施例的形式,它们本文中可统一称为“电路”、“模块”或“系统”。此外,本发明的方面可以采取在一个或多个计算机可读介质中实施的计算机程序产品的形式,在该计算机可读介质中具有计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是(但不限于)电子、磁性、光学、电磁、红外线或半导体系统、装置或器件,或前述的任何合适的组合。计算机可读存储介质的更具体的示例(非详尽清单)可包括以下各种:具有一或多个导线的电连接件、便携型计算机盘片、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携型光盘只读存储器(CD-ROM)、光学存储器件或磁性存储器件,或前述的任何合适的组合。在此文件的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储用于与指令执行系统、装置或设备一起使用的程序。
可以使用任何合适的介质传送实施在计算机可读介质上的程序代码,包括但不限于无线、有线、光纤缆线、射频(RF)等,或者前述的任意合适的组合。可以用一个或多个编程语言的任意组合编写用于执行本发明的方面的操作的计算机程序代码,所述编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言或类似的编程语言)。程序代码可以全部在用户的计算机上执行,部分在用户的计算机上执行,作为独立软件包执行,部分在用户的计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务供应商通过互联网)。
参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图说明本发明的方面。将理解到,可以通过计算机程序指令实施流程图和/或框图的每个块以及流程图和/或框图中的块的组合。这些计算机程序指令可以被提供给通用计算机、专用计算机、或者其它可编程数据处理装置的处理器,以产生机器,从而经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图的块中指定的功能/动作的装置。
这些计算机程序指令也可以存储在计算机可读介质中,其指引计算机、其它可编程数据处理装置、或其它设备以特定的方式工作,使得存储在计算机可读介质中的指令产生制品,其包括实施流程图和/或框图的块中指定的功能/动作的指令。计算机程序指令也可以被加载到计算机、其它可编程数据处理装置、或其它设备中,以使得在计算机、其它可编程装置、或其它设备中执行一系列操作步骤,以产生计算机执行的进程,使得在计算机或其它可编程装置上执行的指令提供用于实施流程图和/或框图的块中指定的功能/动作的进程。
附图中所示的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现特定逻辑功能的可执行指令。也应当注意,在某些作为替换的实施方式中,块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连示出的块实际上可以基本同时执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个块、以及框图和/或流程图中的块的组合,可以用执行特定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
这里所使用的措词仅是为了描述具体实施例的目的,而不意欲限制本发明。如这里所使用的,单数形式也意在包括复数形式,除非上下文清晰地表明不是如此。还将理解,术语“包括”和/或“包含”在本说明书中使用时表示所述的特征、数字、步骤、操作、元素和/或组件的存在,但不排除一个或多个其它特征、数字、步骤、元素和/或组件、和/或它们的组合的存在或增加。
权利要求中的所有装置或步骤以及功能元素的对应结构、材料、动作和等同物意在包括用于与其它要求权利的元素组合地执行功能的任何结构、材料或动作,正如具体要求权利的。已经为了示例和说明的目的呈现了本发明的描述,但该描述不意在是穷尽的,也不意在将本发明限制到所公开的形式。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和改变都是显而易见的。为了最好地说明本发明的原理和实际应用,以及为了使本领域的其它技术人员能够理解本发明的带有适合于所构思的特定应用的各种修改的各种实施例,而选择和描述了实施例。

Claims (18)

1.一种经由设备适配器从高速缓存和非易失性存储器NVS向多个存储设备中的每一个转出数据的方法,包括:
根据与每个所述存储设备有关的NVS的当前占用率,自适应地改变从高速缓存转出数据的转出速率;
根据与所述存储设备有关的当前转入活动性,自适应地调整所述转出速率,如果转入活动性低,则所述调整的转出速率相对较高,并且如果转入活动性高,则所述调整的转出速率相对较低;以及
以存储设备的转入活动性为因素在保持吞吐量水平的同时改善读取/写入响应时间,其中:通过在转入活动性允许时激进地排空NVS而改善主机写入响应时间,并且通过在转入活动性需要时保守地排空NVS而改善读取响应时间;
以所述调整的转出速率从高速缓存向所述存储设备转出数据,并且从所述NVS丢弃所转出的数据。
2.如权利要求1所述的方法,其中自适应地改变所述转出速率,以保持所述NVS的期望总占用率,所述NVS的期望总占用率受到如下限制:与每个所述存储设备有关的NVS的占用率不大于所述NVS的最大占用率,其中所述NVS中的可用空间向所有所述存储设备的总最大分配超过所述NVS中的可用空间的百分之百。
3.如权利要求2所述的方法,其中通过以下自适应地改变转出速率:
如果所述NVS的总占用率超过最大总占用率,则将所述转出速率设置为最大速率,
如果所述NVS的占用率小于最小占用率,则将所述转出速率设置为最小速率,以及
在其他情况下,基于当前占用率与用于所述存储设备的最大占用率的比率而设置所述转出速率。
4.如前述任一项权利要求所述的方法,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性和设备适配器使用的带宽中的至少一个。
5.根据权利要求4所述的方法,其中根据所述存储设备的读取/写入速度而自适应地调整所述转出速率。
6.根据权利要求1所述的方法,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和所述设备的读取/写入速度中的每个。
7.根据权利要求1所述的方法,其中自适应地改变所述转出速率,使得所述NVS的总占用率平均上保持接近于期望的占用率,以增加向所述多个存储设备的数据吞吐量,并且自适应地调整所述转出速率,以减小主机读取和写入响应时间。
8.根据权利要求1至3中任一项所述的方法,还包括:
提供转出速率的索引表,
其中自适应地改变所述转出速率包括基于与所述存储设备有关的NVS的当前占用率计算初始索引;
其中自适应地调整所述转出速率包括根据与所述存储设备有关的当前转入活动性而递增或递减所述初始索引;以及
根据所调整的索引,从所述表中读出所调整的转出速率。
9.根据权利要求8所述的方法,还包括:
根据所述索引表中的当前转入活动性和转出速率选择所述初始索引的递增或递减,使得所述NVS的总占用率平均上保持接近于期望的总占用率,以增加向所述多个存储设备的吞吐量以及减小读取和写入响应时间。
10.一种经由设备适配器从高速缓存和非易失性存储器NVS向多个存储设备中的每一个转出数据的系统,包括:
用于根据与每个所述存储设备有关的NVS的当前占用率,自适应地改变从高速缓存转出数据的转出速率的装置;
用于根据与所述存储设备有关的当前转入活动性,自适应地调整所述转出速率的装置,其中如果转入活动性低,则所述调整的转出速率相对较高,并且如果转入活动性高,则所述调整的转出速率相对较低;以及
用于以存储设备的转入活动性为因素在保持吞吐量水平的同时改善读取/写入响应时间的装置,其中:通过在转入活动性允许时激进地排空NVS而改善主机写入响应时间,并且通过在转入活动性需要时保守地排空NVS而改善读取响应时间;
用于以所述调整的转出速率从高速缓存向所述存储设备转出数据,并且从所述NVS丢弃所转出的数据的装置。
11.如权利要求10所述的系统,其中自适应地改变所述转出速率,以保持所述NVS的期望总占用率,所述NVS的期望总占用率受到如下限制:与每个所述存储设备有关的NVS的占用率不大于所述NVS的最大占用率,其中所述NVS中的可用空间向所有所述存储设备的总最大分配超过所述NVS中的可用空间的百分之百。
12.如权利要求11所述的系统,其中通过以下自适应地改变转出速率:
如果所述NVS的总占用率超过最大总占用率,则将所述转出速率设置为最大速率,
如果所述NVS的占用率小于最小占用率,则将所述转出速率设置为最小速率,以及
在其他情况下,基于当前占用率与用于所述存储设备的最大占用率的比率而设置所述转出速率。
13.如前述权利要求10至12任一项所述的系统,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性和设备适配器使用的带宽中的至少一个。
14.根据权利要求13所述的系统,其中根据所述存储设备的读取/写入速度而自适应地调整所述转出速率。
15.根据权利要求10所述的系统,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和所述设备的读取/写入速度中的每个。
16.根据权利要求10所述的系统,其中自适应地改变所述转出速率,使得所述NVS的总占用率平均上保持接近于期望的占用率,以增加向所述多个存储设备的数据吞吐量,并且自适应地调整所述转出速率,以减小主机读取和写入响应时间。
17.根据权利要求10至12中任一项所述的系统,还包括:
用于提供转出速率的索引表的装置,
其中自适应地改变所述转出速率包括基于与所述存储设备有关的NVS的当前占用率计算初始索引;
其中自适应地调整所述转出速率包括根据与所述存储设备有关的当前转入活动性而递增或递减所述初始索引;以及
用于根据所调整的索引,从所述表中读出所调整的转出速率的装置。
18.根据权利要求17所述的系统,还包括:
用于根据所述索引表中的当前转入活动性和转出速率选择所述初始索引的递增或递减,使得所述NVS的总占用率平均上保持接近于期望的总占用率,以增加向所述多个存储设备的吞吐量以及减小读取和写入响应时间的装置。
CN201180008003.4A 2010-02-01 2011-01-05 存储控制器中的转出任务的动态管理 Active CN102770848B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/697,385 2010-02-01
US12/697,385 US8478945B2 (en) 2010-02-01 2010-02-01 Dynamic management of destage tasks in a storage controller
PCT/EP2011/050101 WO2011092045A1 (en) 2010-02-01 2011-01-05 Dynamic management of destage tasks in a storage controller

Publications (2)

Publication Number Publication Date
CN102770848A CN102770848A (zh) 2012-11-07
CN102770848B true CN102770848B (zh) 2015-12-16

Family

ID=43857651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180008003.4A Active CN102770848B (zh) 2010-02-01 2011-01-05 存储控制器中的转出任务的动态管理

Country Status (6)

Country Link
US (1) US8478945B2 (zh)
EP (1) EP2531922B1 (zh)
JP (1) JP5270801B2 (zh)
CN (1) CN102770848B (zh)
CA (1) CA2780220C (zh)
WO (1) WO2011092045A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US9086812B2 (en) * 2010-02-19 2015-07-21 Tokyo Institute Of Technology Storage device, control method for same and system management program
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8793436B2 (en) 2011-05-23 2014-07-29 International Business Machines Corporation Cache management of tracks in a first cache and a second cache for a storage
US8799578B2 (en) * 2011-05-23 2014-08-05 International Business Machines Corporation Managing unmodified tracks maintained in both a first cache and a second cache
US8806122B2 (en) 2011-05-23 2014-08-12 International Business Machines Corporation Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
TWI447643B (zh) * 2011-06-17 2014-08-01 Mstar Semiconductor Inc 資料存取方法以及可存取資料的電子裝置
CN102279714B (zh) * 2011-08-26 2014-03-26 上海文广科技(集团)有限公司 Io请求控制方法和装置
US9262321B2 (en) * 2011-11-17 2016-02-16 International Business Machines Corporation Adjustment of destage rate based on read and write response time requirements
US8838905B2 (en) 2011-11-17 2014-09-16 International Business Machines Corporation Periodic destages from inside and outside diameters of disks to improve read response time via traversal of a spatial ordering of tracks
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US8930619B2 (en) * 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9350807B2 (en) * 2012-06-15 2016-05-24 Qlogic, Corporation Intelligent adapter for providing storage area network access and access to a local storage device
CN103514111A (zh) * 2012-06-21 2014-01-15 华为技术有限公司 一种Cache的替换方法及装置
US9342463B2 (en) * 2012-09-20 2016-05-17 International Business Machines Corporation Management of destage tasks with large number of ranks
US9122576B2 (en) 2012-09-28 2015-09-01 International Business Machines Corporation Fuzzy counters for NVS to reduce lock contention
US9703527B2 (en) 2012-12-31 2017-07-11 Sandisk Technologies Llc Storage device and method for reallocating storage device resources based on an estimated fill level of a host buffer
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US20140337598A1 (en) * 2013-05-07 2014-11-13 Lsi Corporation Modulation of flash programming based on host activity
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US9798574B2 (en) * 2013-09-27 2017-10-24 Intel Corporation Techniques to compose memory resources across devices
US9632945B2 (en) * 2013-11-12 2017-04-25 International Business Machines Corporation Destage grouping for sequential fast write tracks
US9298397B2 (en) 2013-11-12 2016-03-29 Globalfoundries Inc. Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
JP2015111334A (ja) 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US9454305B1 (en) 2014-01-27 2016-09-27 Qlogic, Corporation Method and system for managing storage reservation
US9423980B1 (en) 2014-06-12 2016-08-23 Qlogic, Corporation Methods and systems for automatically adding intelligent storage adapters to a cluster
US9436654B1 (en) 2014-06-23 2016-09-06 Qlogic, Corporation Methods and systems for processing task management functions in a cluster having an intelligent storage adapter
US9477424B1 (en) 2014-07-23 2016-10-25 Qlogic, Corporation Methods and systems for using an intelligent storage adapter for replication in a clustered environment
US9460017B1 (en) 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
EP3021208B1 (en) * 2014-11-14 2019-01-09 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
EP3021209A1 (en) * 2014-11-14 2016-05-18 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9483207B1 (en) 2015-01-09 2016-11-01 Qlogic, Corporation Methods and systems for efficient caching using an intelligent storage adapter
CN106293503B9 (zh) * 2015-06-23 2019-06-28 株式会社东芝 磁盘装置及控制方法
US9959052B1 (en) * 2015-09-17 2018-05-01 Western Digital Technologies, Inc. Media based cache for data storage device
US10628331B2 (en) * 2016-06-01 2020-04-21 International Business Machines Corporation Demote scan processing to demote tracks from cache
US10956322B2 (en) * 2016-06-02 2021-03-23 International Business Machines Corporation Storage drive dependent track removal in a cache for storage
US11169731B2 (en) * 2016-10-31 2021-11-09 International Business Machines Corporation Managing storage resources in a dispersed storage network
US10664170B2 (en) * 2016-12-14 2020-05-26 Microsoft Technology Licensing, Llc Partial storage of large files in distinct storage systems
US10162756B2 (en) * 2017-01-18 2018-12-25 Intel Corporation Memory-efficient last level cache architecture
US10481800B1 (en) * 2017-04-28 2019-11-19 EMC IP Holding Company LLC Network data management protocol redirector
US10929034B2 (en) 2018-05-08 2021-02-23 International Business Machines Corporation Allocation of task control blocks in a storage controller for staging and destaging based on storage rank response time
US11321133B2 (en) 2018-06-08 2022-05-03 International Business Machines Corporation Determining an allocation of stage and destage tasks by using a machine learning module
CN109032503B (zh) * 2018-06-14 2021-04-16 浙江大华存储科技有限公司 一种固态硬盘数据迁移带宽的流控方法及装置
US10747596B2 (en) 2018-07-31 2020-08-18 International Business Machines Corporation Determining when to send message to a computing node to process items using a machine learning module
US10628241B2 (en) 2018-07-31 2020-04-21 International Business Machines Corporation Determining when to send message to computing node to process items by training a machine learning module
US10901906B2 (en) 2018-08-07 2021-01-26 International Business Machines Corporation Write data allocation in storage system
US11222265B2 (en) * 2018-10-25 2022-01-11 International Business Machines Corporation Perform destages of tracks with holes in a storage system by training a machine learning module
US10901904B2 (en) 2018-10-25 2021-01-26 International Business Machines Corporation Using a machine learning module to perform destages of tracks with holes in a storage system
US10740238B2 (en) 2018-11-12 2020-08-11 International Business Machines Corporation Dynamically determining cache destage rates for multiple storage arrays
US10795602B1 (en) * 2019-05-31 2020-10-06 International Business Machines Corporation Selectively destaging data updates from write caches across data storage locations
US11151053B2 (en) * 2019-08-07 2021-10-19 International Business Machines Corporation Increasing data read and/or write heat tracking resolution in storage devices having cache architecture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775738B2 (en) * 2001-08-17 2004-08-10 International Business Machines Corporation Method, system, and program for caching data in a storage controller
CN1782942A (zh) * 2004-12-03 2006-06-07 国际商业机器公司 用改进的特征键值启用系统特征
US7159071B2 (en) * 2003-03-07 2007-01-02 Fujitsu Limited Storage system and disk load balance control method thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2017458C (en) * 1989-07-24 2000-10-10 Jonathan R. Engdahl Intelligent network interface circuit
JPH064401A (ja) 1992-06-19 1994-01-14 Fujitsu Ltd メモリアクセス回路
JP3335030B2 (ja) 1995-03-13 2002-10-15 株式会社タクマ プーリ用クリーニング機構を備えたチェーンコンベア装置及びコンベアプーリのクリーニング方法
US5751292A (en) 1995-06-06 1998-05-12 Hewlett-Packard Company Texture mapping method and system
JPH09244955A (ja) * 1996-03-11 1997-09-19 Toshiba Corp キャッシュメモリ制御方法及びその装置
US6785771B2 (en) * 2001-12-04 2004-08-31 International Business Machines Corporation Method, system, and program for destaging data in cache
US7191207B2 (en) * 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
JP4508608B2 (ja) * 2003-11-13 2010-07-21 株式会社日立製作所 統合キャッシュを備えた記憶装置アダプタ
US7539815B2 (en) * 2004-12-29 2009-05-26 International Business Machines Corporation Method, system and circuit for managing task queues in a disk device controller
US7395377B2 (en) * 2006-04-20 2008-07-01 International Business Machines Corporation Method and system for adaptive back-off and advance for non-volatile storage (NVS) occupancy level management
JP5076418B2 (ja) 2006-09-19 2012-11-21 ソニー株式会社 共有メモリ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775738B2 (en) * 2001-08-17 2004-08-10 International Business Machines Corporation Method, system, and program for caching data in a storage controller
US7159071B2 (en) * 2003-03-07 2007-01-02 Fujitsu Limited Storage system and disk load balance control method thereof
CN1782942A (zh) * 2004-12-03 2006-06-07 国际商业机器公司 用改进的特征键值启用系统特征

Also Published As

Publication number Publication date
WO2011092045A1 (en) 2011-08-04
EP2531922B1 (en) 2013-09-18
CN102770848A (zh) 2012-11-07
CA2780220C (en) 2018-03-13
US20110191534A1 (en) 2011-08-04
JP5270801B2 (ja) 2013-08-21
US8478945B2 (en) 2013-07-02
EP2531922A1 (en) 2012-12-12
JP2013511081A (ja) 2013-03-28
CA2780220A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
CN102770848B (zh) 存储控制器中的转出任务的动态管理
US11200174B2 (en) Considering a frequency of access to groups of tracks and density of the groups to select groups of tracks to destage
US9128855B1 (en) Flash cache partitioning
US10169249B2 (en) Adjusting active cache size based on cache usage
US9256533B2 (en) Adjustment of destage rate based on read and write response time requirements
US11281497B2 (en) Determining an allocation of stage and destage tasks by training a machine learning module
US9542328B2 (en) Dynamically controlling a file system write cache
US10031808B2 (en) Raid 10 reads optimized for solid state drives
US10970209B2 (en) Destaging metadata tracks from cache
US11663129B2 (en) Using a machine learning module to dynamically determine tracks to prestage from storage to cache
US10581969B2 (en) Storage system using cloud based ranks as replica storage
US20180095888A1 (en) Considering a density of tracks to destage in groups of tracks to select groups of tracks to destage
WO2015167490A1 (en) Storage system bandwidth adjustment
US7870335B2 (en) Host adaptive seek technique environment
US9298397B2 (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
CN103713853A (zh) 用于数据管理的方法和系统
US11630585B1 (en) Processing evacuation events in a storage array that includes a plurality of storage devices
JP4430092B2 (ja) Raid装置、raid装置の制御部およびraid装置のライトバック制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant