CN103562843A - 在具有多个高速缓存的存储系统中高速缓存数据 - Google Patents
在具有多个高速缓存的存储系统中高速缓存数据 Download PDFInfo
- Publication number
- CN103562843A CN103562843A CN201280024942.2A CN201280024942A CN103562843A CN 103562843 A CN103562843 A CN 103562843A CN 201280024942 A CN201280024942 A CN 201280024942A CN 103562843 A CN103562843 A CN 103562843A
- Authority
- CN
- China
- Prior art keywords
- track
- attribute
- condition
- write request
- determined
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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
提供了一种计算机程序产品、系统和方法,用于使用写入请求的属性确定在具有多个高速缓存的存储系统中的何处高速缓存数据,所述多个高速缓存包括顺序存取存储设备中的非易失性存储设备高速缓存。响应于确定待高速缓存的已修改轨道,所接收的已修改轨道被高速缓存在与顺序存取存储设备集成的非易失性存储设备中。接收具有已修改轨道的写入请求。做出关于所接收的写入请求的属性是否满足条件的确定。响应于确定所确定的属性不满足所述条件,用于写入请求的所接收的已修改轨道被高速缓存在非易失性存储设备中。降级请求被添加到具有所确定的属性不满足条件的所接收的写入请求的请求队列。
Description
技术领域
本发明涉及一种计算机程序产品、系统和方法,用于使用写入请求的属性确定在具有多个高速缓存的存储系统中的何处高速缓存数据,所述多个高速缓存包括顺序存取存储设备中的非易失性存储设备高速缓存。
背景技术
高速缓存管理系统在比存储所请求轨道(track)的存储设备更快的存取存储设备(例如存储器)中缓冲存储设备中的由于读取和写入操作而最近被存取的轨道。对更快存取高速缓冲存储器中的轨道的随后读取请求被以比从较慢存取存储设备中返回所请求轨道更快的速度返回,从而降低了读取延迟。高速缓存管理系统还可能在指向存储设备的已修改轨道被写入到高速缓冲存储器中时并且在已修改轨道被向外写入到存储设备(例如硬盘驱动器)之前,完全返回写入请求。到存储设备的写入延迟典型地显著地长于写入到高速缓冲存储器的延迟。因此,使用高速缓存还降低写入延迟。
高速缓存管理系统可保持链表,该链表对于存储在高速缓存中每个轨道具有一个条目,其可包括在写入到存储设备之前缓冲在高速缓存中的写入数据或者读取数据。在常用的最近最少使用(LRU)高速缓存技术中,如果高速缓存中的轨道被存取,即高速缓存“命中”,则LRU列表中的用于所存取轨道的条目被移动到列表的最近使用(MRU)端。如果所请求的轨道不在高速缓存中,即高速缓存未命中,则高速缓存中的其条目在列表的LRU端的轨道可被移除(或降级回到存储设备),而用于从存储设备升级(stage)到高速缓存中的轨道的数目据的条目被添加到LRU列表的MRU端。利用这种LRU高速缓存技术,被更频繁存取的轨道很可能会留在高速缓存中,而不太频繁存取的数据将更可能从列表的LRU端中移除,以便在高速缓存中为新存取的轨道腾出空间。
LRU高速缓存技术试图为时间局部性优化,以便降级(destage)不太可能被很快重写的轨道,从而最小化降级操作的数目,也就是说,如果未被降级的写入被重写,则重写写入的降级被避免,从而节省了将数据从高速缓存写入到磁盘的时间和努力。另一方面,也希望以利用空间局部性的方式降级,这意味着,数据被写入到彼此最接近的存储位置,从而以最小化存储设备写入机制和存储介质需被移动以达到下一个存储位置以便写入的距离。
利用时间局部性和空间局部性两者的一种技术是明智写入排序(WOW)算法。WOW算法采用循环链表或时钟,其中循环链表对于高速缓存中缓冲的每个写入请求具有一个条目。根据相关联的写入请求被指向的存储位置而在链表中排序条目,以利用空间局部性的好处。此外,每个条目包括指示高速缓存中的存储位置的写入数据最近是否已被更新的位。当用于条目的写入数据被更新时,设置用于该条目的位。指针指向循环链表中的当前条目。使用WOW算法的任务存取由指针寻址的条目。如果用于该条目的位指示最近已更新用于高速缓存中的该条目的数据,则该位被设置以指示写入数据最近未被更新且指针递增以指向下一条目,使得具有到空间上下一最接近先前写入的存储位置的存储位置的写入数据的条目被考虑。选择条目以写入在空间上最接近于最后写入的存储位置,并且它的位指示用于该条目的写入数据最近未被更新。
因此,利用WOW算法,利用了空间局部性,因为待写入的下一个条目被选择用于考虑在空间上最接近于最后降级的写入请求。此外,利用了时间局部性,因为最近已被写入的条目将被跳过,直到指针循环返回到跳过的条目以便考虑。
磁盘驱动器可实现考虑了写入轨道的线性和角位置的WOW算法和其它算法,并针对两者关于当前写入头位置优化以确定最小的总服务时间。这个过程被称为“基于寻找和旋转优化的命令重排序”。磁盘驱动器逻辑板将分析写入请求,并基于将需要多少时间来寻找轨道的各种圆柱和角位置以便写入以及将过去多少时间来等待数据在头下旋转两者来确定先做哪些。
在该技术中存在对使用存储系统中的高速缓存的改进技术的需要。
发明内容
提供了一种计算机程序产品、系统和方法,用于使用写入请求的属性来确定在具有多个高速缓存的存储系统中的何处高速缓存数据,所述多个高速缓存包括顺序存取存储设备中的非易失性存储设备高速缓存。响应于确定待高速缓存的已修改轨道,所接收的已修改轨道被高速缓存在与顺序存取存储设备集成的非易失性存储设备中。接收具有已修改轨道的写入请求。做出关于所接收的写入请求的属性是否满足条件的确定。响应于确定所确定的属性不满足所述条件,用于写入请求的所接收的已修改轨道被高速缓存在非易失性存储设备中。对于具有所确定的属性不满足条件的所接收的写入请求,降级请求被添加到请求队列。以比具有属性不满足条件的写入请求的已修改轨道更高的优先级,为具有满足条件的所确定的属性的写入请求写入所接收的已修改轨道。
附图说明
图1示出计算环境的实施例。
图2示出第一高速缓存管理信息的实施例。
图3示出第二高速缓存管理信息的实施例。
图4示出顺序存取存储设备的实施例。
图5示出第一高速缓存控制块的实施例。
图6示出第二高速缓存控制块的实施例。
图7示出非易失性存储设备高速缓存控制块的实施例。
图8示出空间索引条目的实施例。
图9示出用以确定是否去除第一高速缓存中的轨道而为待添加到第一高速缓存的轨道释放空间的操作的实施例。
图10示出在第一高速缓存中释放空间的操作的实施例。
图11示出将轨道添加到第一高速缓存的操作的实施例。
图12示出将轨道提升(promote)到第二高速缓存的操作的实施例。
图13示出在第二高速缓存中释放空间的操作的实施例。
图14示出处理针对所请求的轨道的读取请求的操作的实施例。
图15示出在顺序存取存储设备处处理写入请求的操作的实施例。
图16示出在顺序存取存储设备处确定是否将写入请求的已修改轨道高速缓存在非易失性存储设备中的操作的实施例。
图17示出在顺序存取存储设备处处理请求队列的操作的实施例。
图18示出在顺序存取存储设备处处理请求队列中的降级请求的操作的实施例。
图19示出在顺序存取存储设备处处理请求队列和写入旁路队列中的写入请求的操作的实施例。
具体实施方式
图1示出了计算环境的实施例。多个主机2a、2b...2n可通过网络6提交输入/输出(I/O)请求到存储控制器4,以存取存储设备10中卷8(例如逻辑单元号、逻辑设备、逻辑子系统等)处的数据。存储控制器4包括:含有一个或多个具有单个或多个核的处理器的处理器复合体12,第一高速缓存14,用以备份在高速缓存14中的轨道的第一高速缓存备份设备16,以及第二高速缓存18。第一高速缓存14和第二高速缓存18高速缓存在主机2a、2b......2n和存储设备10之间传送的数据。第一高速缓存备份设备16可以提供第一高速缓存14中的轨道的非易失性存储。在进一步的实施例中,第一高速缓存备份设备16可位于与第一高速缓存14的不同的功率边界上的集群或硬件中。
存储控制器4中具有存储器20,存储器20包括存储管理器22和高速缓存管理器24,存储管理器22用于管理在主机2a、2b...2n和存储设备10之间传送的轨道传送,高速缓存管理器24在第一高速缓存14、第一高速缓存备份设备16和第二高速缓存18中管理在主机2a、2b...2n和存储设备10之间传送的数据。轨道可包括存储设备10中配置的任何数据单元,例如轨道、逻辑块地址(LBA)等,它是轨道的更大分组的一部分,例如卷、逻辑设备等。高速缓存管理器24保持第一高速缓存管理信息26和第二高速缓存管理信息28以管理在第一高速缓存14和第二高速缓存18中读取(未修改)和写(已修改)轨道。第一高速缓存备份设备索引30提供到第一高速缓存备份设备16中位置的轨道标识符的索引。
存储管理器22和高速缓存管理器24在图1中被示为加载到存储器20并由处理器复合体12执行的程序代码。可替换地,部分或全部的功能可以实现在存储控制器4的硬件设备中,例如在专用集成电路(ASIC)中。
第二高速缓存18可在日志结构阵列(LSA)32中存储轨道,其中以接收的相继顺序写入轨道,从而提供写入到第二高速缓存18的轨道的时间排序。在LSA中,已经出现在LSA中的轨道的后来版本被写入在LSA32的末尾。在可替换的实施例中,第二高速缓存18可以LSA中以外的格式存储数据。
在一个实施例中,第一高速缓存14可包括随机存取存储器(RAM),例如动态随机存取存储器(DRAM),而第二高速缓存18可包括闪存,例如固态器件,而存储设备10由一个或多个顺序存取存储设备组成,例如硬盘驱动器和磁带。存储设备10可包括单一的顺序存取存储设备或可包括存储设备阵列,例如完全磁盘束(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)的阵列、虚拟化设备等。在一个实施例中,第一高速缓存14是比第二高速缓存18更快的存取设备,而第二高速缓存18是比存储设备10更快的存取设备。另外,第一高速缓存14可具有比第二高速缓存18更大的每个存储单元成本,而第二高速缓存18可具有比存储设备10中的存储设备更大的每个存储单元成本。
第一高速缓存14可以是存储器20的一部分,或者在单独的存储器设备中实现,例如DRAM。在一个实施例中,第一高速缓存备份设备16可包括非易失性备份存储设备(NVS),例如非易失性存储器,例如电池供电的随机存取存储器(RAM)、静态RAM(SRAM)等。
网络6可包括存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、互联网、内联网等。
图2示出第一高速缓存管理信息26的实施例,包括:轨道索引50,提供第一高速缓存14中的轨道索引给控制块目录52中的控制块;未修改相继LRU列表54,提供第一高速缓存14中未修改相继轨道的时间排序;已修改LRU列表56,提供第一高速缓存14中已修改相继和非相继轨道的时间排序;以及未修改非相继LRU列表58,提供第一高速缓存14中未修改非相继轨道的时间排序。
在某些实施例中,在确定第一高速缓存备份设备16满时,已修改LRU列表56用于从第一高速缓存14降级已修改轨道,以便可以丢弃第一高速缓存备份设备16中这些轨道的副本,从而在第一高速缓存备份设备16中为新的已修改轨道腾出空间。
图3示出第二高速缓存管理信息28的实施例,包括:轨道索引70,提供第二高速缓存18中的轨道索引给控制块目录72中的控制块;未修改列表74,提供第二高速缓存18中未修改轨道的时间排序;以及空间索引76,基于存储已修改轨道的存储设备10中的物理位置而提供在第二高速缓存18中已修改轨道的空间排序。
LRU列表54、56、58和74都可包括根据最后一次存取识别的轨道时排序的第一高速缓存14和第二高速缓存18中轨道的轨道ID。LRU列表54、56、58和74具有指示最近存取的轨道的最近使用(MRU)端以及指示最近最少使用或存取的轨道的LRU端。添加到高速缓存14和18的轨道的轨道ID被添加到LRU列表的MRU端,并且从LRU端存取从高速缓存14和18降级的轨道。轨道索引50和70以及空间索引76可包括分散索引表(SIT)。可替换类型的数据结构可用于提供高速缓存14和18中轨道的时间排序和第二高速缓存18中轨道的空间排序。
非相继轨道可包括联机线事务处理(OLTP)轨道,其经常包括不是完全随机且具有一些参考位置(即具有被反复存取的可能性)的小块写入。
图4示出顺序存取存储设备100的实施例,其中可用一个或多个顺序存取存储设备100实现存储设备10。顺序存取存储设备100包括显示为I/O管理器102的控制逻辑电路、缓冲已修改数据的非易失性存储设备104以及存储器106,存储器106包括:提供非易失性存储设备104中轨道的索引给控制块目录110中的控制块的轨道索引108;基于已修改轨道所存储的顺序存取存储介质114中的物理位置提供非易失性存储设备104中已修改轨道的空间排序的空间索引112;以及在其中排队读取请求和写入请求的请求队列116。I/O管理器102添加读取请求和写入请求到请求队列112,并存取来自请求队列112的读取请求和写入请求以对着顺序存取介质114执行。I/O管理器102可发送命令到生成控制信号的读取/写入控制单元118,用以移动具有读取/写入头120的一个或多个致动器到数据可被读取或者写入的顺序存取存储介质114上的位置。
存储器106还包括写入旁路队列116,用以在缓冲器122中缓冲相继写入请求和它们的已修改轨道,它将不在非易失性存储设备104中被高速缓存,而是被直接写入到顺序存取存储介质114。缓冲器122可临时缓冲读取和写入输入请求以及被返回给读取请求的数据。缓冲器122可能在除非易失性存储设备104外的单独设备中,并且可包括比非易失性存储设备104中可用的更小的存储空间。
设备100中的缓冲器124可暂时缓冲读取和写入输入请求以及被返回给读取请求的数据。缓冲器124还可用于为未保持在非易失性存储设备中的写入请求暂时缓冲已修改轨道,例如为相继写入请求和其已修改数据。缓冲器124可能在除非易失性存储设备104外的单独设备中,并且可包括比非易失性存储设备104中可用的更小的存储空间。可替换地,缓冲器124的部分或全部可在非易失性存储设备中实现。
顺序存取存储介质114可包括用于硬盘驱动设备或磁带的一个或多个硬盘驱动盘片。在某些实施例中,非易失性存储设备104可包括由固态存储设备组成的闪存设备。在某些实施例中,非易失性存储设备104(例如闪存)在包括顺序存取存储设备100组件的外壳内的顺序存取存储设备100电路板上实现。例如,其可包括8GB的闪存设备。
I/O管理器102的部分或全部的功能可被实现为可由顺序存取存储设备100中的处理器执行的代码。可替换地,I/O管理器102的部分或全部功能可在顺序存取存储设备100上的ASIC中实现。
图5示出控制块目录52中的第一高速缓存控制块150条目的实施例,包括:控制块标识符(ID)152,轨道在第一高速缓存14中的物理位置的第一高速缓存位置154,指示轨道是已修改还是未修改的信息156,以及指示轨道是相继还是非相继存取的信息158。
图6示出第二高速缓存控制块目录72中的第二高速缓存控制块160条目的实施例,包括:控制块标识符(ID)162和轨道位于LSA32中的LSA位置164。
图7示出非易失性存储设备104控制块目录110中的非易失性存储控制块170条目的实施例,包括:控制块标识符(ID)172和轨道所位于的物理位置174,例如,如果轨道存储在非易失性存储设备上的LSA中时是LSA位置。
图8示出空间索引条目180,包括:非易失性存储设备104中的轨道的轨道标识符182,以及轨道存储在顺序存取存储介质114中的物理位置184,例如圆筒、盘片号、圆筒上的角位置等。
图9示出由高速缓存管理器24执行的操作的实施例,用以从第一高速缓存14降级未修改轨道。当确定释放第一高速缓存14中的空间时,可以启动降级操作。当启动(在块200处)操作以确定是否从第一高速缓存14去除轨道从而容纳待添加到第一高速缓存14的轨道时,高速缓存管理器24基于不同类型的未修改轨道的预期命中而确定(在块202处)降级非相继还是相继未修改轨道。如果(在块204处)确定降级未修改相继轨道,则高速缓存管理器24使用(在块206处)未修改相继LRU列表54以确定待从列表的LRU端降级的未修改相继轨道,其并未被提升到第二高速缓存18。如果(在块204处)确定降级未修改非相继轨道,则高速缓存管理器24使用未修改非相继LRU列表58确定(在块208处)待降级的未修改非相继轨道。未修改非相继轨道(在块210处)被提升到第二高速缓存18。
图10示出由高速缓存管理器24执行的操作的实施例,用以从第一高速缓存14降级已修改轨道。如果在第一高速缓存备份设备16中需要空间,则高速缓存管理器24可作为预定操作的一部分定期降级轨道,并增加降级速率。当启动(在块250处)降级已修改轨道的操作时,高速缓存管理器24处理(在块252处)已修改LRU列表56以确定待从LRU列表56的LRU端降级的已修改轨道。高速缓存管理器24(在块254处)写入确定的已修改轨道(相继或非相继)到存储设备10,从而绕过第二高速缓存18。高速缓存管理器24从第一高速缓存备份设备16丢弃(在块260处)降级的已修改轨道的副本。
利用图9和图10的操作,非相继轨道被降级,但不被提升到第二高速缓存18。已修改轨道(写入)被直接写入到存储设备10,而绕过第二高速缓存。相继未修改轨道(读取)被丢弃,并且不被复制到其它位置,而从第一高速缓存14降级的未修改非相继轨道被提升到第二高速缓存18。
图11示出可由高速缓存管理器24执行的操作的实施例,用以添加(即提升)轨道到第一高速缓存14,该轨道可包括来自主机2a、2b...2n的写入或已修改轨道,受读取请求支配并因此被移动到第一高速缓存14的第二高速缓存18中的非相继轨道,或者未在高速缓存14或18中找到并从存储设备10检索的读取所请求的数据。当接收(在块300处)待添加至第一高速缓存14的轨道时,高速缓存管理器24为待添加的轨道创建(在块301处)控制块150(图4),以指示第一高速缓存14中的位置154以及是否该轨道是已修改/未修改156和相继/非相继158。该控制块150被添加到第一高速缓存14的控制块目录52。高速缓存管理器24添加(在块302处)条目到第一高速缓存轨道索引50,其具有待添加的轨道的轨道ID以及到控制块目录52中所创建的高速缓存控制块150的索引。条目被添加(在块304处)到待添加的轨道的轨道类型的LRU列表54、56或58的MRU端。如果(在块306处)待添加的轨道是已修改非相继轨道,则待添加的轨道还被复制(在块308处)到第一高速缓存备份设备16,并且针对添加的轨道,条目被添加到第一高速缓存备份设备索引30。如果(在块306处)待添加的轨道是未修改相继轨道,则控制结束。
图12示出由高速缓存管理器24执行的操作的实施例,用以将从第一高速缓存14降级的未修改非相继轨道提升到第二高速缓存18。当启动(在块350处)操作以提升轨道到第二高速缓存18时,高速缓存管理器24添加(在块352处)正被提升到第二高速缓存18中的LSA32的轨道,并为待添加的轨道创建(在块354处)控制块160(图6)以指示在LSA32中的轨道位置164。条目被添加(在块356处)到第二高速缓存轨道索引70,其具有被提升的轨道的轨道ID以及到第二高速缓存18的控制块目录72中的所创建的高速缓存控制块160的索引。高速缓存管理器24在未修改LRU列表74的MRU端处指示(在块360处)被提升的轨道,例如通过添加轨道ID到MRU端。
高速缓存管理器12可仅将第二高速缓存18用作未修改相继轨道的只读高速缓存。已修改相继和非相继轨道被直接写入到顺序存取存储设备100,并且顺序存取存储设备100中的非易失性存储设备104为已修改非相继轨道提供写入高速缓存。
图13示出由高速缓存管理器24执行的操作的实施例,用以在第二高速缓存18中为待添加到第二高速缓存18的新轨道(即从第一高速缓存14降级的轨道)释放空间。当启动该操作时(在块400处),高速缓存管理器24从未修改LRU列表74的LRU端确定(在块402处)第二高速缓存18中的未修改轨道,并无效(在块404处)所确定的未修改轨道而不降级被无效的未修改轨道到存储设备10。
图14示出由高速缓存管理器24所执行操作的实施例,用以从高速缓存14和18以及存储设备10检索用于读取请求的所请求的轨道。处理读取请求的存储管理器22可提交请求到高速缓存管理器24用于所请求的轨道。当接收(在块450处)对于轨道的请求时,高速缓存管理器24使用(在块454处)第一高速缓存轨道索引50来确定是否所有所请求的轨道在第一高速缓存14中。如果(在块454处)所有所请求的轨道都不在第一高速缓存14中,则高速缓存管理器24使用(在块456处)第二高速缓存轨道索引70以确定在第二高速缓存18中而不在第一高速缓存14中的任何所请求的轨道。如果(在块458处)存在在第一高速缓存14和第二高速缓存18中都未找到的任何所请求的轨道,则高速缓存管理器24从第二高速缓存轨道索引70中确定(在块460处)在存储设备10中而不在第一高速缓存14和第二高速缓存18中的任何所请求的轨道。然后高速缓存管理器24将在第二高速缓存18和存储设备10中任何所确定的轨道提升(在块462处)到第一高速缓存14。高速缓存管理器24使用(在块464处)第一高速缓存轨道索引50以从第一高速缓存14检索所请求的轨道以返回给读取请求。用于检索的轨道的条目被移动(在块466处)到包括用于检索的轨道的条目的LRU列表54、56、58的MRU端。利用图13的操作,高速缓存管理器24从最高级的高速缓存14中检索所请求的轨道,然后在进入存储设备10之前首先从第二高速缓存18检索,因为高速缓存14和18将具有所请求的轨道的最近已修改版本。首先在第一高速缓存14中查找最近版本,如果不在第一高速缓存14中则在第二高速缓存18中查找,如果不在高速缓存14、18的任一个中则在存储设备10中查找。
利用图14的操作,高速缓存管理器24从最高级的高速缓存14收集所请求的轨道,然后在进入存储设备10之前首先从第二高速缓存18收集,因为高速缓存14和18将提供到所请求的轨道的最快存取,而第一高速缓存14提供所请求的轨道的最近已修改版本。
图15示出由I/O管理器102在顺序存取存储设备100处所执行操作的实施例,用以为顺序存取存储介质114处理具有已修改轨道的写入请求。当接收(在块500处)写入请求时,I/O管理器102确定(在块502处)写入请求的属性是否满足条件。如果(在块502处)满足条件,例如写入请求是相继写入请求或写入请求的块大小大于预定的阈值,则写入请求被添加(在块504处)到写入旁路队列122。满足条件的写入请求的已修改轨道被缓冲(在块506处)在缓冲器124中。写入旁路队列122中的写入请求被从缓冲器124直接写入到顺序存取存储介质114中,而不高速缓存在非易失性存储设备104中。
在一个实施例中,确定写入请求是否不被高速缓存在非易失性存储设备104中而是直接写入到顺序存取存储介质114的条件可能是写入请求包括相继写入请求。在可替换的实施例中,如果写入请求的块大小低于阈值,则已修改轨道可被高速缓存在非易失性存储设备中,使得具有块数目低于阈值的相继和非相继写入请求被高速缓存在非易失性存储设备104中。
如果(在块502处)写入请求的属性不满足条件,例如是非相继写入请求,则I/O管理器102添加(在块508处)所接收的已修改轨道到非易失性存储设备104。在一个实施例中,轨道被添加到非易失性存储设备104中的LSA中,或者以另一种格式存储在设备104中。I/O管理器102为每个所接收的已修改轨道创建(在块510处)高速缓存控制块170(图7),其指示已修改轨道在非易失性存储设备104中的位置(例如LSA位置)。条目被添加(在块512处)到轨道索引108,其具有在非易失性存储设备104中的已修改轨道的轨道ID和到所创建的控制块170的索引。
I/O管理器102确定(在块514处)已修改轨道在顺序存取存储介质114上存储的物理位置,例如介质的圆筒。另外,在额外的实施例中,包括在空间索引112中的所确定的物理位置还可包括已修改轨道在圆筒上的角位置(也被称作扇区)。I/O管理器102添加(在块516处)条目到空间索引112,其指示已修改轨道的轨道ID182以及已修改轨道在顺序存取存储介质114上的所确定的物理位置184。I/O管理器102还为每个待写入的轨道添加(在块518处)降级请求到请求队列116。这个降级请求可能不识别待降级的具体已修改轨道,后来使用算法来确定待降级的具体已修改轨道,从而减少执行写入的总存取时间。
图16示出由I/O管理器102所执行操作的实施例,用以检查写入请求的多个属性以确定是在请求队列116还是写入旁路队列122中排队写入请求。当启动(在块530处)操作以确定写入请求是否满足上述条件时,I/O管理器102确定(在块532处)所接收的写入请求是否是相继写入请求。如果(从块532的“否”分支)写入请求是非相继的,则I/O管理102在非易失性存储设备104中存储(在块534处)写入请求的已修改轨道,并在请求队列116的MRU端添加降级请求。如果(在块532处)写入请求是相继写入请求且如果(在块536处)写入的大小(例如块数目)超过阈值,即是较大的写入请求,则I/O管理器添加(在块538处)写入请求到写入旁路队列122并在缓冲器124中存储已修改轨道。如果(在块536处)相继写入请求的大小没有超过阈值,即是相对较小的相继写入,则控制进行到块534,其中较小尺寸的相继写入被高速缓存在非易失性存储设备104中。
图17示出由I/O管理器102所执行操作的实施例,用以处理请求队列116,当请求被排队在请求队列116中时,其可能被不断地重复。当启动(在块550处)操作以处理请求队列116时,如果(在块552处)该请求是读取请求,则I/O管理器102非易失性存储设备104中收集(在块554处)任何所请求的轨道以返回给读取请求。如果(在块556处)在非易失性存储设备104中没有所请求的轨道,则I/O管理器102从顺序存取存储介质114收集(在块558处)未在非易失性存储设备104中找到的任何所请求的轨道。在收集所有所请求的轨道后(从块558或块556的“否”分支),I/O管理器102返回(在块560处)收集的读取所请求的轨道到存储控制器4(图1),而不在非易失性存储设备104中高速缓存的读取所请求的轨道。
如果(在块562处)该请求是降级/写入请求,则控制进行(在块562处)到图18中的块600以处理降级/写入请求。为了执行(在块600)降级请求,I/O管理器102比较(在块602处)关于顺序存取存储介质114的写入头120的当前位置和在空间索引112中指示并在顺序存取存储介质上以其它方式确定的已修改轨道的物理位置(例如圆筒和角位置)。空间索引112可包括所有必要的信息以确定时间上最接近写入头的轨道,例如待写入的轨道的圆筒和角位置,或者可能仅包括一些信息,例如圆筒,并且可从读取/写入控制单元118确定所需的其余物理位置信息。基于该比较,I/O管理器102选择(在块606处)可从写入头120的当前位置在最小时间内写入的已修改轨道,并写入(在块606)选择的已修改轨道到顺序存取存储介质114。降级的已修改轨道被无效(在块608处)。
在一实施例中,其中所述顺序存取存储设备包括硬盘驱动器,而顺序存取存储介质114包括磁盘,空间索引指示轨道在磁盘上的圆筒。为了确定从写入头的当前位置可在最小时间内存取的已修改轨道,I/O管理器102可分析已修改轨道在空间索引112中的圆筒和角位置,用以为写入头120估计寻找已修改轨道的圆筒的时间,并旋转写入头120下的磁盘以达到已修改轨道的角位置。I/O管理器然后可选择具有最小的估计存取时间的已修改轨道。
在进一步的实施例中,顺序存取存储设备114可包括硬盘驱动器,该硬盘驱动器具有多个磁盘盘片和用于写入到每个盘片的多个写入头。I/O管理器102可确定从写入头的当前位置寻找并旋转到每个磁盘盘片上的每个已修改轨道的估计的时间,用以选择具有最小估计时间的已修改轨道以跨过磁盘盘片存取。
图19示出由I/O管理器102所执行操作的实施例,用以处理写入旁路队列122中的写入请求并处理请求队列116中的写入请求和读取请求。当完成(在块650处)请求队列650中写入请求或者读取请求的处理时,I/O管理器102确定(在块652处)写入旁路请求队列是否为空。如果是,则I/O管理器102进行(在块654处)到图17中的块550以处理请求队列116中的请求。如果(在块652处)写入旁路请求队列122不为空,则I/O管理器102通过以下操作来处理(在块656处)写入旁路队列122中的写入请求:将所处理的写入请求的缓冲的已修改轨道写入到顺序存取存储介质114,而绕过非易失性存储设备104。这样,更高级的优先权被提供给写入旁路队列122中而不是请求队列116中的写入请求。在处理来自写入旁路队列122的写入请求后,如果(在块658处)写入旁路队列122中的连续第一预定数目的写入请求已被处理,则控制进行到图17中的块550,用以处理请求队列116中的第二预定数目的请求,以便避免请求队列116中的请求的饥饿(starving)。否则,如果(在块658处)来自写入旁路队列122的相继第一预定数目的写入请求还未被处理,即饥饿条件还没有发生,则控制进行回到块655以处理写入旁路队列122中进一步的写入请求。
此外,如果I/O管理器102确定降级操作需被执行,以将非易失性存储设备104中的已修改轨道降级到顺序存取存储介质114,从而释放非易失性存储介质104中的空间,则降级操作将中断写入旁路队列122中写入请求的处理,直到完成降级操作。
所述实施例提供用于允许在主要或第一级高速缓存和存储设备之间使用第二级高速缓存的技术,用以在最快存取第一高速缓存14具有最昂贵的空间、每字节成本时增加高速缓存空间,而比第一高速缓存便宜但比存储设备快的第二高速缓存可用于增加系统中的高速缓存的数据量。当请求的数据在高速缓存中并可从高速缓存中返回而不必从较慢存取、成本较低的存储设备中检索时,增加较快存取高速缓存的存储空间提高了对高速缓存的数据的存取。另外,在所述实施例中,未修改非相继轨道基于第一高速缓存中的时间排序而被添加到第二高速缓存,然后基于顺序存取存储设备中的空间物理位置而在第二高速缓存中排序,使得降级的轨道被写入到在存储设备中邻近或连续物理位置处的轨道组中,从而优化到存储设备的轨道写入。
所述实施例还提供顺序存取存储设备100中的非易失性存储设备104,例如闪存,用以允许已修改轨道的高速缓存,其中对轨道的读取请求可在它们被降级到顺序存取介质114之前从非易失性存储设备104返回,从而改善读取性能。此外,通过响应于写入在被降级到顺序存取存储介质114之前存储在非易失性存储设备104中,而完全返回给该写入,写入性能可以得到改善。
通过将某些类型的写入请求(典型地针对不太经常存取的数据(例如相继写入数据))直接写入到顺序存取存储介质114,并绕过非易失性存储设备104高速缓存,从而为更可能频繁存取的写入数据(例如非相继写入轨道)提供在非易失性存储设备104高速缓存中的更多空间,实现了进一步的益处。这允许更频繁地存取的数据被返回给来自较快存取的非易失性存储设备104(例如闪存)的读取请求,然后必须存取从较慢的顺序存取存储介质114(例如硬盘驱动器)存取请求的更频繁存取的数据。
所述操作可被实现为方法、装置或使用标准编程和/或工程技术来产生软件、固件、硬件或其任意组合的计算机程序产品。因此,实施例的个方面可采用在这里一般都可被称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合了软件和硬件方面的实施例形式。此外,实施例的各方面可采用在具有其上体现的计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
可使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是(例如但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备或前述的任何适当组合。计算机可读存储介质的更具体的例子(非穷尽列表)将包括以下:具有一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何有形的介质,它可包含或存储由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备使用的程序。
计算机可读信号介质可包括具有在其中体现的计算机可读程序代码的传播数据信号,例如在基带中或作为载波的部分。这种传播的信号可采用各种形式的任一种,包括但不限于电磁的、光学的或其任何合适的组合。计算机可读信号介质可以是除了计算机可读存储介质外以外并可通信、传播或运输由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备使用的程序的任何计算机可读介质。
可使用任何适当的介质,包括但不限于无线、有线、光纤光缆、射频等或前述的任何适当组合来传送在计算机可读介质上体现的程序代码。
可以一种或多种编程语言的组合编写用于执行本发明方面的操作的计算机程序代码,所述编程语言包括:诸如Java、Smalltalk、C++等面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规过程编程语言。程序代码可完全在用户的计算机上、部分地在用户的计算机上、作为独立的软件包、部分地在用户的计算机上并部分地在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况中,远程计算机可通过包括局域网(LAN)或广域网(WAN)的任何类型的网络而连接到用户的计算机上,或者可做出到外部计算机的连接(例如使用互联网服务提供商通过互联网)。
以上参考根据发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或块图描述本发明的方面。将理解的是,流程图说明和/或框图的每个块以及流程图说明和/或框图中的块组合可由计算机程序指令实现。这些计算机程序指令可提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得通过计算机或其它可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图块中指定的功能/动作的装置。
这些计算机程序指令还可存储在计算机可读介质中,该计算机可读介质可以指引计算机、其它可编程数据处理装置或其它设备以特定方式工作,使得计算机可读介质中存储的指令产生包括指令的制造物品,该指令执行流程图和/或框图块中指定的功能/动作。
计算机程序指令还可加载到计算机、其它可编程数据处理装置或其它设备上,以使得一系列的操作步骤在计算机、其它可编程装置或其它设备上执行,用以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的过程。
术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”是指“本发明的一个或多个(但不是全部)实施例”,除非另有明确规定。
术语“包含”、“包括”、“具有”及其变体的是指“包含但不限于”,除非另有明确规定。
项目的枚举列表并不暗示任何或所有的项目是相互排斥的,除非另有明确规定列举。
术语“一个”和“该”是指“一个或多个”,除非另有明确规定。
彼此通信的设备不需要彼此连续通信,除非另有明确规定。此外,彼此通信的设备可直接通信或者通过一个或多个媒介间接地通信。
具有彼此通信的几个组件的实施例的描述并不暗示需要所有的这些组件。相反,描述各种可选的组件来示出本发明的各种各样的可能实施例。
此外,虽然以相继次序描述过程步骤、方法步骤、算法等,但是这样的过程、方法和算法可被配置为以可替换的次序工作。换言之,可被描述的任何步骤的序列或次序并不一定指示以该次序执行步骤的需要。也可以任何实用的次序执行此处所述的过程步骤。此外,可以同时执行某些步骤。
当在此处描述单个设备或物品时,将易于显而易见的是,可使用一个以上的设备/物品(不论它们协作与否)来代替单个设备/物品。同样,当此处描述一个以上的设备或物品时(不论它们协作与否),将易于显而易见的是,可使用单个设备/物品来取代一个以上的设备或物品,或者可使用不同数目的设备/物品来取代所示数目的设备或程序。一设备的功能和/或特征可选地可由一个或多个其它设备实施,所述一个或多个其它设备未被明确描述为具有这样的功能/特征。因此,本发明的其它实施例不需要包括设备本身。
图7-图19示出的操作显示以某一次序发生的某些事件。在可替代的实施例中,可以不同的次序执行某些操作,修改或删除某些操作。此外,步骤可添加到上述逻辑,并且仍然符合所述实施例。此外,此处所述的操作可能相继发生,或者可并行处理某些操作。更进一步地,操作可由单个处理单元或由分布式处理单元执行。
Claims (26)
1.一种计算机程序产品,用于管理顺序存取存储设备中的数据,所述顺序存取存储设备从系统接收关于顺序存取存储介质中存储的轨道的读取请求和写入请求,所述计算机程序产品包括具有在其上体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码执行以实施操作,所述操作包括:
响应于确定待高速缓存的已修改轨道,在与所述顺序存取存储设备集成的非易失性存储设备中高速缓存所接收的已修改轨道;
接收具有已修改轨道的写入请求;
确定所接收的写入请求的属性是否满足条件;
响应于确定所确定的属性不满足所述条件,在所述非易失性存储设备中高速缓存所述写入请求的所接收的已修改轨道;
为不具有满足所述条件的所确定的属性的所接收的写入请求添加降级请求到请求队列;以及
以比不具有满足所述条件的属性的写入请求的已修改轨道更高的优先级,为具有满足所述条件的所确定的属性的写入请求写入所接收的已修改轨道。
2.如权利要求1的计算机程序产品,其中所述非易失性存储设备是比所述顺序存取存储介质快的存取设备。
3.如权利要求1的计算机程序产品,其中所述顺序存取存储设备包括含有缓冲器的硬盘驱动器,其中所述非易失性存储设备包括与含有所述缓冲器的设备分离的闪存设备,其中所述顺序存取存储介质包括至少一个磁盘,其中具有满足所述条件的所确定的属性的写入请求的所接收的已修改轨道在被写入到所述顺序存取存储介质中之前存储在所述缓冲器中而未被存储在所述非易失性存储设备中。
4.如权利要求1的计算机程序产品,其中所述操作还包括:
以基于所述非易失性存储设备中的已修改轨道在所述顺序存取存储介质中的物理位置的排序,保持指示所述非易失性存储设备中的已修改轨道的空间索引;以及
响应于处理所述请求队列中的降级请求,比较写入头的当前位置和所述空间索引中指示的所述已修改轨道在所述顺序存取存储介质上的物理位置,用以选择从所述非易失性存储设备降级到所述顺序存取介质的已修改轨道,并且其中,具有满足所述条件的所确定的属性的写入请求被写入到所述顺序存取存储介质中,而无需使用所述空间索引。
5.如权利要求1的计算机程序产品,其中所述条件包括所述属性是相继写入请求,并且其中,如果所述写入请求包括非相继写入请求,则所确定的属性不满足所述条件。
6.如权利要求1的计算机程序产品,其中所确定的属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目大于轨道的阈值数目,则所确定的属性满足所述条件,并且其中,如果所确定的轨道的数目小于轨道的阈值数目,则所述条件未被满足。
7.如权利要求1的计算机程序产品,其中所确定的属性包括第一属性,而所确定的条件包括第一条件,其中所述操作还包括:
响应于确定所述第一属性满足所述第一条件,确定所述写入请求的第二属性;
确定所述第二属性是否满足第二条件;
响应于确定所确定的第二属性满足所述第二条件,在所述非易失性存储设备中高速缓存所接收的已修改轨道;以及
为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所述第二属性的写入请求添加降级请求到所述请求队列,其中,以比不具有满足所述第一条件的所述第一属性的写入请求和具有满足所述第一条件的第一属性但不具有满足所述第二条件的所述第二属性的写入请求的已修改轨道更高的优先级,为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所确定的第二属性的写入请求写入所接收的已修改轨道。
8.如权利要求7的计算机程序产品,其中所确定的第一属性指示写入请求是相继写入还是非相继写入,并且其中,如果第一属性是相继写入请求,则所确定的第一属性满足第一条件,而如果第一属性是非相继写入请求,则不满足第一条件,其中所述第二属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目小于轨道的阈值数目,则所确定的第二属性满足第二条件,并且其中如果所确定的轨道的数目大于轨道的阈值数目,则不满足第二条件。
9.如权利要求1的计算机程序产品,其中所述操作还包括:
为不具有满足所述条件的所确定的属性的已修改轨道保持排队写入请求的旁路队列;
响应于完成所述请求队列中的一个写入请求的处理,响应于所述旁路队列具有至少一个写入请求,处理所述旁路队列中的一个写入请求,其中以比所述请求队列中的写入请求更高的优先级处理所述旁路队列中的写入请求。
10.如权利要求9的计算机程序产品,还包括:
在处理所述旁路队列中预定第二数目的写入请求之后,切换到处理所述请求队列中的第一预定数目的写入请求。
11.一种用于管理顺序存取存储设备中的数据的方法,所述顺序存取存储设备从系统接收关于顺序存取存储介质中存储的轨道的读取请求和写入请求,包括:
响应于确定待高速缓存的已修改轨道,在与所述顺序存取存储设备集成的非易失性存储设备中高速缓存所接收的已修改轨道;
接收具有已修改轨道的写入请求;
确定所接收的写入请求的属性是否满足条件;
响应于确定所确定的属性不满足所述条件,在所述非易失性存储设备中高速缓存所述写入请求的所接收的已修改轨道;
为不具有满足所述条件的所确定的属性的所接收的写入请求添加降级请求到请求队列;以及
以比不具有满足所述条件的属性的写入请求的已修改轨道更高的优先级,为具有满足所述条件的所确定的属性的写入请求写入所接收的已修改轨道。
12.如权利要求11的方法,其中所述顺序存取存储设备包括含有缓冲器的硬盘驱动器,其中所述非易失性存储设备包括与含有所述缓冲器的设备分离的闪存设备,其中所述顺序存取存储介质包括至少一个磁盘,其中具有满足所述条件的所确定的属性的写入请求的所接收的已修改轨道在被写入到所述顺序存取存储介质中之前存储在所述缓冲器中而未被存储在所述非易失性存储设备中。
13.如权利要求11的方法,还包括:
以基于所述非易失性存储设备中的已修改轨道在所述顺序存取存储介质中的物理位置的排序,保持指示所述非易失性存储设备中的已修改轨道的空间索引;以及
响应于处理所述请求队列中的降级请求,比较写入头的当前位置和所述空间索引中指示的所述已修改轨道在所述顺序存取存储介质上的物理位置,用以选择从所述非易失性存储设备降级到所述顺序存取介质的已修改轨道,并且其中具有满足所述条件的所确定的属性的写入请求被写入到所述顺序存取存储介质中,而无需使用所述空间索引。
14.如权利要求11的方法,其中所述条件包括所述属性是相继写入请求,并且其中,如果所述写入请求包括非相继写入请求,则所确定的属性不满足所述条件。
15.如权利要求11的方法,其中所确定的属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目大于轨道的阈值数目,则所确定的属性满足所述条件,并且其中,如果所确定的轨道的数目小于轨道的阈值数目,则所述条件未被满足。
16.如权利要求11的方法,其中所确定的属性包括第一属性,所确定的条件包括第一条件,还包括:
响应于确定所述第一属性满足所述第一条件,确定所述写入请求的第二属性;
确定所述第二属性是否满足第二条件;
响应于确定所确定的第二属性满足所述第二条件,在所述非易失性存储设备中高速缓存所接收的已修改轨道;以及
为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所述第二属性的写入请求添加降级请求到所述请求队列,其中,以比不具有满足所述第一条件的所述第一属性的写入请求和具有满足所述第一条件的第一属性但不具有满足所述第二条件的所述第二属性的写入请求的已修改轨道更高的优先级,为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所确定的第二属性的写入请求写入所接收的已修改轨道。
17.如权利要求16的方法,其中所确定的第一属性指示写入请求是相继写入还是非相继写入,并且其中,如果第一属性是相继写入请求,则所确定的第一属性满足第一条件,而如果第一属性是非相继写入请求,则不满足第一条件,其中所述第二属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目小于轨道的阈值数目,则所确定的第二属性满足第二条件,并且其中如果所确定的轨道的数目大于轨道的阈值数目,则不满足第二条件。
18.如权利要求11的计算机程序产品,还包括:
为不具有满足所述条件的所确定的属性的已修改轨道保持排队写入请求的旁路队列;
响应于完成所述请求队列中的一个写入请求的处理,响应于所述旁路队列具有至少一个写入请求,处理旁路队列中的一个写入请求,其中以比所述请求队列中的写入请求更高的优先级处理所述旁路队列中的写入请求。
19.一种存储设备,从系统对轨道的读取请求和写入请求,包括:
存储轨道的顺序存取存储介质;
非易失性存储设备;以及
具有在其上体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码执行以实施操作,该操作包括:
响应于确定待高速缓存的已修改轨道,在与所述顺序存取存储设备集成的非易失性存储设备中高速缓存所接收的已修改轨道;
接收具有已修改轨道的写入请求;
确定所接收的写入请求的属性是否满足条件;
响应于确定所确定的属性不满足所述条件,在所述非易失性存储设备中高速缓存所述写入请求的所接收的已修改轨道;
为不具有满足所述条件的所确定的属性的所接收的写入请求添加降级请求到请求队列;以及
以比不具有满足所述条件的属性的写入请求的已修改轨道更高的优先级,为具有满足所述条件的所确定的属性的写入请求写入所接收的已修改轨道。
20.如权利要求19的存储设备,其中所述顺序存取存储设备包括含有缓冲器的硬盘驱动器,其中所述非易失性存储设备包括与含有所述缓冲器的设备分离的闪存设备,其中所述顺序存取存储介质包括至少一个磁盘,其中具有满足所述条件的所确定的属性的写入请求的所接收的已修改轨道在被写入到所述顺序存取存储介质中之前存储在所述缓冲器中而未被存储在所述非易失性存储设备中。
21.如权利要求19的存储设备,其中所述操作还包括:
以基于所述非易失性存储设备中的已修改轨道在所述顺序存取存储介质中的物理位置的排序,保持指示所述非易失性存储设备中的已修改轨道的空间索引;以及
响应于处理所述请求队列中的降级请求,比较写入头的当前位置和所述空间索引中指示的所述已修改轨道在所述顺序存取存储介质上的物理位置,用以选择从所述非易失性存储设备降级到所述顺序存取介质的已修改轨道,并且其中具有满足所述条件的所确定的属性的写入请求被写入到所述顺序存取存储介质中,而无需使用所述空间索引。
22.如权利要求19的存储设备,其中所述条件包括所述属性是相继写入请求,并且其中,如果所述写入请求包括非相继写入请求,则所确定的属性不满足所述条件。
23.如权利要求19的存储设备,其中所确定的属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目大于轨道的阈值数目,则所确定的属性满足所述条件,并且其中,如果所确定的轨道的数目小于轨道的阈值数目,则所述条件未被满足。
24.如权利要求19的存储设备,其中其中所确定的属性包括第一属性,而所确定的条件包括第一条件,其中所述操作还包括:
响应于确定所述第一属性满足所述第一条件,确定所述写入请求的第二属性;
确定所述第二属性是否满足第二条件;
响应于确定所确定的第二属性满足所述第二条件,在所述非易失性存储设备中高速缓存所接收的已修改轨道;以及
为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所述第二属性的写入请求添加降级请求到所述请求队列,其中,以比不具有满足所述第一条件的所述第一属性的写入请求和具有满足所述第一条件的第一属性但不具有满足所述第二条件的所述第二属性的写入请求的已修改轨道更高的优先级,为具有满足所述第一条件的所确定的第一属性以及满足所述第二条件的所确定的第二属性的写入请求写入所接收的已修改轨道。
25.如权利要求24的存储设备,其中所确定的第一属性指示写入请求是相继写入还是非相继写入,并且其中,如果第一属性是相继写入请求,则所确定的第一属性满足第一条件,而如果第一属性是非相继写入请求,则不满足第一条件,其中所述第二属性包括作为所接收的写入请求的一部分而待写入的轨道的数目,其中如果所确定的待写入的轨道的数目小于轨道的阈值数目,则所确定的第二属性满足第二条件,并且其中如果所确定的轨道的数目大于轨道的阈值数目,则不满足第二条件。
26.如权利要求19的存储设备,其中所述操作还包括:
为不具有满足所述条件的所确定的属性的已修改轨道保持排队写入请求的旁路队列;
响应于完成所述请求队列中的一个写入请求的处理,响应于所述旁路队列具有至少一个写入请求,处理旁路队列中的一个写入请求,其中以比所述请求队列中的写入请求更高的优先级处理所述旁路队列中的写入请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/113,949 US8788742B2 (en) | 2011-05-23 | 2011-05-23 | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
US13/113,949 | 2011-05-23 | ||
PCT/IB2012/052564 WO2012160514A1 (en) | 2011-05-23 | 2012-05-22 | Caching data in a storage system having multiple caches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103562843A true CN103562843A (zh) | 2014-02-05 |
CN103562843B CN103562843B (zh) | 2016-07-20 |
Family
ID=47216679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280024942.2A Active CN103562843B (zh) | 2011-05-23 | 2012-05-22 | 用于管理顺序存取存储设备中的数据的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8788742B2 (zh) |
JP (1) | JP5943363B2 (zh) |
CN (1) | CN103562843B (zh) |
DE (1) | DE112012001302B4 (zh) |
GB (1) | GB2506042B (zh) |
WO (1) | WO2012160514A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526689A (zh) * | 2016-06-17 | 2017-12-29 | 希捷科技有限公司 | 读高速缓存管理 |
CN107622022A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 数据存储设备中的高速缓存超量配置 |
CN110140114A (zh) * | 2017-03-27 | 2019-08-16 | 西部数据技术公司 | 管理存储系统中数据对象的i/o操作 |
CN110998546A (zh) * | 2017-07-27 | 2020-04-10 | 国际商业机器公司 | 使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求 |
CN111433753A (zh) * | 2017-10-30 | 2020-07-17 | 美光科技公司 | 动态l2p高速缓存 |
CN111837102A (zh) * | 2018-04-12 | 2020-10-27 | 国际商业机器公司 | 使用轨道锁和跨步组锁来管理高速缓存操作 |
CN112905501A (zh) * | 2015-04-29 | 2021-06-04 | 谷歌有限责任公司 | 数据高速缓存 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5708216B2 (ja) * | 2011-05-09 | 2015-04-30 | ソニー株式会社 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
KR101374065B1 (ko) * | 2012-05-23 | 2014-03-13 | 아주대학교산학협력단 | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 |
US8930619B2 (en) * | 2012-05-29 | 2015-01-06 | Dot Hill Systems Corporation | Method and apparatus for efficiently destaging sequential I/O streams |
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 |
US9053038B2 (en) | 2013-03-05 | 2015-06-09 | Dot Hill Systems Corporation | Method and apparatus for efficient read cache operation |
WO2014102886A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
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 |
US9473561B2 (en) * | 2013-03-15 | 2016-10-18 | International Business Machines Corporation | Data transmission for transaction processing in a networked environment |
WO2014143027A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | Hybrid input/output write operations |
WO2016037310A1 (en) * | 2014-09-09 | 2016-03-17 | Hua Zhong University Of Science Technology | Filtering write request sequences |
US9665493B2 (en) * | 2014-10-03 | 2017-05-30 | International Business Machines Corporation | Increased cache performance with multi-level queues of complete tracks |
CN106156065B (zh) * | 2015-03-30 | 2019-09-20 | 华为技术有限公司 | 一种文件持久化方法、删除方法以及相关装置 |
KR102333220B1 (ko) | 2015-09-24 | 2021-12-01 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 |
TWI588824B (zh) * | 2015-12-11 | 2017-06-21 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
US10740040B2 (en) * | 2016-01-22 | 2020-08-11 | Hitachi, Ltd. | System and computer for controlling caching for logical storage |
KR20190116641A (ko) * | 2018-04-05 | 2019-10-15 | 성균관대학교산학협력단 | 가상화 시스템을 위한 저장 장치 및 그 동작 방법 |
US11055001B2 (en) | 2018-05-30 | 2021-07-06 | Seagate Technology Llc | Localized data block destaging |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967507A (zh) * | 2005-11-18 | 2007-05-23 | 国际商业机器公司 | 数据存储控制器及用于管理其中的高速缓存数据的方法 |
CN101114492A (zh) * | 2006-07-27 | 2008-01-30 | 日立环球储存科技荷兰有限公司 | 带有非易失性存储器的、具有多种操作模式的盘驱动器 |
CN101221537A (zh) * | 2007-01-08 | 2008-07-16 | 国际商业机器公司 | 降级数据的方法和系统 |
CN101617295A (zh) * | 2007-02-20 | 2009-12-30 | 国际商业机器公司 | 在故障切换之后对高速缓存数据的保存 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464713A (en) | 1981-08-17 | 1984-08-07 | International Business Machines Corporation | Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store |
JPH04119441A (ja) * | 1990-09-11 | 1992-04-20 | Hitachi Ltd | ディスク・キャッシュ制御方式 |
AU661304B2 (en) | 1991-03-05 | 1995-07-20 | Zitel Corporation | Cache memory system and method of operating the cache memory system |
US5325509A (en) | 1991-03-05 | 1994-06-28 | Zitel Corporation | Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations |
US5903776A (en) | 1997-09-05 | 1999-05-11 | Micron Electronics, Inc. | Multiple priority accelerated graphics port (AGP) request queue |
US6425050B1 (en) * | 1999-09-17 | 2002-07-23 | International Business Machines Corporation | Method, system, and program for performing read operations during a destage operation |
JP2002023962A (ja) * | 2000-07-07 | 2002-01-25 | Fujitsu Ltd | ディスク装置及び制御方法 |
US6785771B2 (en) * | 2001-12-04 | 2004-08-31 | International Business Machines Corporation | Method, system, and program for destaging data in cache |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US20040205297A1 (en) * | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of cache collision avoidance in the presence of a periodic cache aging algorithm |
US7885921B2 (en) | 2004-11-18 | 2011-02-08 | International Business Machines Corporation | Managing atomic updates on metadata tracks in a storage system |
US7698501B1 (en) | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for utilizing sparse data containers in a striped volume set |
US8504597B2 (en) | 2005-09-09 | 2013-08-06 | William M. Pitts | Distributed file system consistency mechanism extension for enabling internet video broadcasting |
JP4788528B2 (ja) * | 2005-09-22 | 2011-10-05 | 富士通株式会社 | ディスク制御装置、ディスク制御方法、ディスク制御プログラム |
US7650341B1 (en) | 2005-12-23 | 2010-01-19 | Hewlett-Packard Development Company, L.P. | Data backup/recovery |
US7702870B2 (en) | 2006-01-19 | 2010-04-20 | Network Appliance Inc. | Method and apparatus for defragmentation and for detection of relocated blocks |
JP4794370B2 (ja) * | 2006-06-20 | 2011-10-19 | 株式会社日立製作所 | 省電力とパフォーマンスを両立したストレージシステム及び記憶制御方法 |
US7562203B2 (en) | 2006-09-27 | 2009-07-14 | Network Appliance, Inc. | Storage defragmentation based on modified physical address and unmodified logical address |
JP2008108145A (ja) | 2006-10-26 | 2008-05-08 | Hitachi Ltd | 計算機システム及びこれを用いたデータの管理方法 |
JP5031341B2 (ja) | 2006-11-30 | 2012-09-19 | 株式会社日立製作所 | 記憶システム及びデータ管理方法 |
US7721043B2 (en) | 2007-01-08 | 2010-05-18 | International Business Machines Corporation | Managing write requests in cache directed to different storage groups |
US9088591B2 (en) | 2008-04-28 | 2015-07-21 | Vmware, Inc. | Computer file system with path lookup tables |
WO2009134772A2 (en) | 2008-04-29 | 2009-11-05 | Maxiscale, Inc | Peer-to-peer redundant file server system and methods |
US8103822B2 (en) * | 2009-04-26 | 2012-01-24 | Sandisk Il Ltd. | Method and apparatus for implementing a caching policy for non-volatile memory |
US8838903B2 (en) * | 2010-02-04 | 2014-09-16 | Dataram, Inc. | Priority ordered multi-medium solid-state storage system and methods for use |
-
2011
- 2011-05-23 US US13/113,949 patent/US8788742B2/en active Active
-
2012
- 2012-05-17 US US13/474,481 patent/US8745325B2/en not_active Expired - Fee Related
- 2012-05-22 CN CN201280024942.2A patent/CN103562843B/zh active Active
- 2012-05-22 WO PCT/IB2012/052564 patent/WO2012160514A1/en active Application Filing
- 2012-05-22 JP JP2014511990A patent/JP5943363B2/ja active Active
- 2012-05-22 GB GB1321720.3A patent/GB2506042B/en active Active
- 2012-05-22 DE DE112012001302.6T patent/DE112012001302B4/de active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967507A (zh) * | 2005-11-18 | 2007-05-23 | 国际商业机器公司 | 数据存储控制器及用于管理其中的高速缓存数据的方法 |
CN101114492A (zh) * | 2006-07-27 | 2008-01-30 | 日立环球储存科技荷兰有限公司 | 带有非易失性存储器的、具有多种操作模式的盘驱动器 |
CN101221537A (zh) * | 2007-01-08 | 2008-07-16 | 国际商业机器公司 | 降级数据的方法和系统 |
CN101617295A (zh) * | 2007-02-20 | 2009-12-30 | 国际商业机器公司 | 在故障切换之后对高速缓存数据的保存 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905501B (zh) * | 2015-04-29 | 2022-08-12 | 谷歌有限责任公司 | 数据高速缓存 |
CN112905501A (zh) * | 2015-04-29 | 2021-06-04 | 谷歌有限责任公司 | 数据高速缓存 |
CN107526689A (zh) * | 2016-06-17 | 2017-12-29 | 希捷科技有限公司 | 读高速缓存管理 |
CN107526689B (zh) * | 2016-06-17 | 2024-01-16 | 希捷科技有限公司 | 读高速缓存管理 |
CN107622022A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 数据存储设备中的高速缓存超量配置 |
CN110140114A (zh) * | 2017-03-27 | 2019-08-16 | 西部数据技术公司 | 管理存储系统中数据对象的i/o操作 |
CN110998546A (zh) * | 2017-07-27 | 2020-04-10 | 国际商业机器公司 | 使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求 |
US11704209B2 (en) | 2017-07-27 | 2023-07-18 | International Business Machines Corporation | Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache |
CN110998546B (zh) * | 2017-07-27 | 2023-04-14 | 国际商业机器公司 | 用于处理对高速缓存中的轨道的读和写请求的方法和系统 |
CN111433753A (zh) * | 2017-10-30 | 2020-07-17 | 美光科技公司 | 动态l2p高速缓存 |
CN111433753B (zh) * | 2017-10-30 | 2021-11-05 | 美光科技公司 | 动态l2p高速缓存 |
US11726919B2 (en) | 2017-10-30 | 2023-08-15 | Micron Technology, Inc. | Dynamic L2P cache |
US11119933B2 (en) | 2017-10-30 | 2021-09-14 | Micron Technology, Inc. | Dynamic L2P cache |
CN111837102A (zh) * | 2018-04-12 | 2020-10-27 | 国际商业机器公司 | 使用轨道锁和跨步组锁来管理高速缓存操作 |
CN111837102B (zh) * | 2018-04-12 | 2024-04-19 | 国际商业机器公司 | 使用轨道锁和跨步组锁来管理高速缓存操作 |
Also Published As
Publication number | Publication date |
---|---|
JP5943363B2 (ja) | 2016-07-05 |
GB2506042B (en) | 2014-07-30 |
JP2014516179A (ja) | 2014-07-07 |
US20120303863A1 (en) | 2012-11-29 |
DE112012001302B4 (de) | 2020-12-17 |
US8788742B2 (en) | 2014-07-22 |
CN103562843B (zh) | 2016-07-20 |
US8745325B2 (en) | 2014-06-03 |
WO2012160514A1 (en) | 2012-11-29 |
US20120303877A1 (en) | 2012-11-29 |
GB201321720D0 (en) | 2014-01-22 |
DE112012001302T5 (de) | 2014-01-30 |
GB2506042A (en) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103562843A (zh) | 在具有多个高速缓存的存储系统中高速缓存数据 | |
CN103562887A (zh) | 用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理 | |
CN104145252B (zh) | 两级高速缓存系统中的自适应高速缓存提升 | |
US9772948B2 (en) | Determining a criterion for movement of data from a primary cache to a secondary cache | |
US9529724B2 (en) | Layered architecture for hybrid controller | |
US8762650B2 (en) | Prefetching tracks using multiple caches | |
US8161241B2 (en) | Temperature-aware buffered caching for solid state storage | |
CN103907096B (zh) | 闪存高速缓存中的部分数据片段的提升 | |
US8775729B2 (en) | Prefetching data tracks and parity data to use for destaging updated tracks | |
US8850106B2 (en) | Populating strides of tracks to demote from a first cache to a second cache | |
US8700854B2 (en) | Managing unmodified tracks maintained in both a first cache and a second cache | |
CN103688249B (zh) | 固态盘的自适应记录高速缓存 | |
US20130132655A1 (en) | Reducing write amplification in a cache with flash memory used as a write cache | |
US20100174867A1 (en) | Using different algorithms to destage different types of data from cache | |
CN104040508B (zh) | 用于在高速缓存系统中管理数据的方法和系统 | |
CN103946820B (zh) | 从盘的内径和外径周期性降级以改善读响应时间 | |
CN103257932A (zh) | 用于管理计算机可读高速缓存系统中的数据的方法和系统 | |
US20120303895A1 (en) | Handling high priority requests in a sequential access storage device having a non-volatile storage cache | |
US8996789B2 (en) | Handling high priority requests in a sequential access storage device having a non-volatile storage cache | |
US7822923B2 (en) | Storage control program, storage control apparatus, and storage control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |