用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理的制作方法

xiaoxiao2020-7-22  2

【专利下载】Tel:18215660330

用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理的制作方法
【专利摘要】本发明提供了一种计算机程序产品、系统和方法,用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理。第一高速缓存保持存储设备中的受输入/输出(I/O)请求支配的已修改轨道和未修改轨道。已修改轨道和未修改轨道被从第一高速缓存降级。从第一高速缓存降级的已修改轨道和未修改轨道被提升到第二高速缓存。从第二高速缓存降级的未修改轨道被丢弃。第二高速缓存中的在存储设备上的邻近物理位置处的已修改轨道被分组,并且已分组的已修改轨道从第二高速缓存降级到存储设备。
【专利说明】用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理
【技术领域】
[0001]本发明涉及一种计算机程序产品、系统和方法,用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理。
【背景技术】
[0002]高速缓存管理系统在比存储所请求轨道(track)的存储设备更快的存取存储设备(例如存储器)中缓冲存储设备中的由于读取和写入操作而最近被存取的轨道。对更快存取高速缓冲存储器中的轨道的随后读取请求被以比从较慢存取存储设备中返回所请求轨道更快的速度返回,从而降低了读取延迟。高速缓存管理系统还可能在指向存储设备的已修改轨道被写入到高速缓冲存储器中时并且在已修改轨道被向外写入到存储设备(例如硬盘驱动器)之前,完全返回写入请求。到存储设备的写入延迟典型地显著地长于写入到高速缓冲存储器的延迟。因此,使用高速缓存还降低写入延迟。
[0003]高速缓存管理系统可保持链表,该链表对于存储在高速缓存中每个轨道具有一个条目,其可包括在写入到存储设备之前缓冲在高速缓存中的写入数据或者读取数据。在常用的最近最少使用(LRU)高速缓存技术中,如果高速缓存中的轨道被存取,即高速缓存“命中”,则LRU列表中的用于所存取轨道的条目被移动到列表的最近使用(MRU)端。如果所请求的轨道不在高速缓存中,即高速缓存未命中,则高速缓存中的其条目在列表的LRU端的轨道可被移除(或降级回到存储设备),而用于从存储设备升级(stage)到高速缓存中的轨道数据的条目被添加到LRU列表的MRU端。利用这种LRU高速缓存技术,被更频繁存取的轨道很可能会留在高速缓存中,而不太频繁存取的数据将更可能从列表的LRU端中移除,以便在高速缓存中为新存取的轨道腾出空间。
[0004]LRU高速缓存技术试图为时间局部性优化,以便降级(destage)不太可能被很快重写的轨道,从而最小化降级操作的数量,也就是说,如果未被降级的写入被重写,则重写写入的降级被避免,从而节省了将数据从高速缓存写入到磁盘的时间和努力。另一方面,也希望以利用空间局部性的方式降级,这意味着,数据被写入到彼此最接近的存储位置,从而以最小化存储设备写入机制和存储介质需被移动以达到下一个存储位置以便写入的距离。
[0005]利用时间局部性和空间局部性两者的一种技术是明智写入排序(WOW)算法。WOW算法采用循环链表或时钟,其中循环链表对于高速缓存中缓冲的每个写入请求具有一个条目。根据相关联的写入请求被指向的存储位置而在链表中排序条目,以利用空间局部性的好处。此外,每个条目包括指示高速缓存中的存储位置的写入数据最近是否已被更新的位。当用于条目的写入数据被更新时,设置用于该条目的位。指针指向循环链表中的当前条目。使用WOW算法的任务存取由指针寻址的条目。如果用于该条目的位指示最近已更新用于高速缓存中的该条目的数据,则该位被设置以指示写入数据最近未被更新且指针递增以指向下一条目,使得具有到空间上下一最接近先前写入的存储位置的存储位置的写入数据的条目被考虑。选择条目以写入在空间上最接近于最后写入的存储位置,并且它的位指示用于该条目的写入数据最近未被更新。
[0006]因此,利用WOW算法,利用了空间局部性,因为待写入的下一个条目被选择用于考虑在空间上最接近于最后降级的写入请求。此外,利用了时间局部性,因为最近已被写入的条目将被跳过,直到指针循环返回到跳过的条目以便考虑。
[0007]磁盘驱动器可实现考虑了写入轨道的线性和角位置的WOW算法和其它算法,并针对两者关于当前写入头位置优化以确定最小的总服务时间。这个过程被称为“基于寻找和旋转优化的命令重排序”。磁盘驱动器逻辑板将分析写入请求,并基于将需要多少时间来寻找轨道的各种圆柱和角位置以便写入以及将过去多少时间来等待数据在头下旋转两者来确定先做哪些。
[0008]在该技术中存在对使用存储系统中的高速缓存的改进技术的需要。

【发明内容】

[0009]提供了一种计算机程序产品、系统和方法,用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理。第一高速缓存保持存储设备中的受输入/输出(I/o)请求支配的已修改轨道和未修改轨道。已修改轨道和未修改轨道被从第一高速缓存降级(destage)o从第一高速缓存降级的已修改轨道和未修改轨道被提升(promote)到第二高速缓存。从第二高速缓存降级的未修改轨道被丢弃。第二高速缓存中的在存储设备上的邻近物理位置处的已修改轨道被分组,并且已分组的已修改轨道被从第二高速缓存降级到存储设备。
【专利附图】

【附图说明】
[0010]图1示出计算环境的实施例。
[0011]图2示出第一高速缓存管理信息的实施例。
[0012]图3示出第二高速缓存管理信息的实施例。
[0013]图4示出第一高速缓存控制块的实施例。
[0014]图5示出第二高速缓存控制块的实施例。
[0015]图6示出空间索引条目的实施例。
[0016]图7示出从第一高速缓存降级未修改轨道的操作的实施例。
[0017]图8示出从第一高速缓存降级已修改轨道的操作的实施例。
[0018]图9示出将轨道添加到第一高速缓存的操作的实施例。
[0019]图10示出将轨道提升到第二高速缓存的操作的实施例。
[0020]图11示出在第二高速缓存中释放空间的操作的实施例。
[0021]图12示出从第二高速缓存降级已修改轨道的操作的实施例。
[0022]图13示出处理对于轨道的请求以返回给读取请求的操作的实施例。
【具体实施方式】
[0023]图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的不同的功率边界上的集群或硬件中。
[0024]存储控制器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中位置的轨道标识符的索引。
[0025]存储管理器22和高速缓存管理器24在图1中被示为加载到存储器20并由处理器复合体12执行的程序代码。可替换地,部分或全部的功能可以实现在存储控制器4的硬件设备中,例如在专用集成电路(ASIC)中。
[0026]第二高速缓存18可在日志结构阵列(LSA)32中存储轨道,其中以接收的相继顺序写入轨道,从而提供写入到第二高速缓存18的轨道的时间排序。在LSA中,已经出现在LSA中的轨道的后来版本被写入在LSA32的末尾。在可替换的实施例中,第二高速缓存18可以LSA中以外的格式存储数据。
[0027]在一个实施例中,第一高速缓存14可包括随机存取存储器(RAM),例如动态随机存取存储器(DRAM),而第二高速缓存18可包括闪速存储器,例如固态器件,而存储设备10由一个或多个顺序存取存储设备组成,例如硬盘驱动器和磁带。存储设备10可包括单一的顺序存取存储设备或可包括存储设备阵列,例如完全磁盘束(JB0D)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)的阵列、虚拟化设备等。在一个实施例中,第一高速缓存14是比第二高速缓存18更快的存取设备,而第二高速缓存18是比存储设备10更快的存取设备。另外,第一高速缓存14可具有比第二高速缓存18更大的每个存储单元成本,而第二高速缓存18可具有比存储设备10中的存储设备更大的每个存储单元成本。
[0028]第一高速缓存14可以是存储器20的一部分,或者在单独的存储器设备中实现,例如DRAM。在一个实施例中,第一高速缓存备份设备16可包括非易失性备份存储设备(NVS),例如非易失性存储器,例如电池供电的随机存取存储器(RAM)、静态RAM (SRAM)等。
[0029]网络6可包括存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、互联网、内联网
坐寸o
[0030]图2示出第一高速缓存管理信息26的实施例,包括:轨道索引50,提供第一高速缓存14中的轨道索引给控制块目录52中的控制块;未修改相继LRU列表54,提供第一高速缓存14中未修改相继轨道的时间排序;已修改LRU列表56,提供第一高速缓存14中已修改相继和非相继轨道的时间排序;以及未修改非相继LRU列表58,提供第一高速缓存14中未修改非相继轨道的时间排序。
[0031]在某些实施例中,在确定第一高速缓存备份设备16满时,已修改LRU列表56用于从第一高速缓存14降级已修改轨道,以便可以丢弃第一高速缓存备份设备16中这些轨道的副本,从而在第一高速缓存备份设备16中为新的已修改轨道腾出空间。
[0032]图3示出第二高速缓存管理信息28的实施例,包括:轨道索引70,提供第二高速缓存18中的轨道索引给控制块目录72中的控制块;未修改列表74,提供第二高速缓存18中未修改轨道的时间排序;以及空间索引76,基于存储已修改轨道的存储设备10中的物理位置而提供在第二高速缓存18中已修改轨道的空间排序。
[0033]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中轨道的空间排序。
[0034]非相继轨道可包括联机线事务处理(OLTP)轨道,其经常包括不是完全随机且具有一些参考位置(即具有被反复存取的可能性)的小块写入。
[0035]图4示出控制块目录52中的第一高速缓存控制块100的条目的实施例,包括:控制块标识符(ID)102、第一高速缓存14中轨道的物理位置的第一高速缓存位置104、指示轨道是已修改还是未修改的信息106以及指示轨道是相继还是非相继存取的信息108。
[0036]图5示出第二高速缓存控制块目录72中的第二高速缓存控制块120的条目的实施例,包括:控制块标识符(ID) 122、轨道在LSA32中所位于的LSA位置124以及指示轨道是已修改还是未修改的信息126。
[0037]图6示出空间索引条目140,包括:第二高速缓存18中轨道的轨道标识符142,以及轨道在存储设备10中所存储的物理位置144,例如圆筒、盘片、块地址和存储设备标识符。
[0038]图7示出由高速缓存管理器24执行的操作的实施例,用以从第一高速缓存14降级未修改轨道。当确定在第一高速缓存14中释放空间时,可启动降级操作。当启动(在块200处)操作以确定是否从第一高速缓存14中去除轨道从而在第一高速缓存14中释放空间时,高速缓存管理器24基于对不同类型的未修改轨道的预期命中而确定(在块202处)降级非相继还是相继未修改轨道。如果(在块204处)确定降级未修改相继轨道,则高速缓存管理器24使用(在块206处)未修改相继LRU列表54以确定要从列表的LRU端降级的未修改相继轨道,其并未被提升到第二高速缓存18。如果(在块204处)确定降级未修改非相继轨道,则高速缓存管理器使用未修改非相继LRU列表58确定(在块208处)要降级的未修改非相继轨道。未修改非相继轨道(在块210处)被提升到第二高速缓存18。
[0039]图8示出由高速缓存管理器24执行的操作的实施例,用以从第一高速缓存14降级已修改轨道。如果在第一高速缓存备份设备16中需要空间,高速缓存管理器24可作为预定操作的一部分而定期降级轨道,并增加降级速率。当启动(在块250处)降级已修改轨道的操作时,高速缓存管理器24处理(在块252处)已修改LRU列表56以确定要从LRU列表56的LRU端降级的已修改轨道。如果(在块254处)所确定的已修改轨道是相继的,则高速缓存管理器24写入(在块256处)所确定的已修改相继轨道到存储设备10,从而绕过第二高速缓存18。如果(在块254处)已修改轨道是非相继的,则高速缓存管理器24提升(在块258处)所确定的已修改非相继轨道到第二高速缓存18并从第一高速缓存备份设备16丢弃(在块260处)所确定的已修改轨道的副本。
[0040]利用图7和图8的操作,非相继轨道被降级,但不被提升到第二高速缓存18。相继已修改(写入)被直接写入到存储设备10,从而绕过第二高速缓存。相继未修改轨道(读取)被丢弃并且不被复制到其它位置,而从第一高速缓存14降级的未修改非相继轨道被提升到第二高速缓存18。
[0041]图9示出可由高速缓存管理器24执行的操作的实施例,用以添加(即提升)轨道到第一高速缓存14,该轨道可包括来自主机2a、2b...2n的写入或已修改轨道,受读取请求支配并因此被移动到第一高速缓存14的第二高速缓存18中的非相继轨道,或者未在高速缓存14或18中找到并从存储设备10检索的读取所请求的数据。当接收(在块300处)待添加至第一高速缓存14的轨道时,高速缓存管理器24为待添加的轨道创建(在块301处)控制块100 (图4),以指示第一高速缓存14中的位置104以及该轨道是否是已修改/未修改106和相继/非相继108。该控制块100被添加到第一高速缓存14的控制块目录52。高速缓存管理器24添加(在块302处)条目到第一高速缓存轨道索引50,其具有待添加的轨道的轨道ID以及到控制块目录52中所创建的高速缓存控制块100的索引。条目被添加(在块304处)到待添加的轨道的轨道类型的LRU列表54、56或58的MRU端。如果(在块306处)待添加的轨道是已修改非相继轨道,则待添加的轨道还被复制(在块308处)到第一高速缓存备份设备16,并且针对添加的轨道,条目被添加到第一高速缓存备份设备索引30。如果(在块306处)待添加的轨道是未修改相继轨道,则控制结束。
[0042]图10示出由高速缓存管理器24执行的操作的实施例,用以将从第一高速缓存14降级的非相继轨道提升到第二高速缓存18。当启动(在块350处)操作以提升轨道到第二高速缓存18时,高速缓存管理器24添加(在块352处)正被提升到第二高速缓存18中LSA32的轨道,并为待添加的轨道创建(在块354处)控制块120 (图5),以指示在LSA32中的轨道位置124以及轨道是否已修改/未修改126。条目被添加(在块356处)到第二高速缓存轨道索引70中,其具有被提升的轨道的轨道ID以及到第二高速缓存18的控制块目录72中所创建的高速缓存控制块120的索引。如果(从块358的“否”分支)正被提升的轨道是未修改数据,则高速缓存管理器24在未修改LRU列表74的MRU端处指示(在块360处)被提升的轨道,例如通过添加轨道ID到MRU端。如果(在块358处)被提升的轨道是已修改数据,则高速缓存管理器24确定(在块362处)在存储设备10上写入已修改被提升的轨道的物理位置,并添加(在块364处)条目到空间索引76,以指示被提升的轨道的轨道ID142以及所确定的被提升的轨道在存储设备10上的物理位置144。
[0043]图11示出由高速缓存管理器24执行的操作的实施例,用以在第二高速缓存18中为待添加到第二高速缓存18的新轨道释放空间,即从第一高速缓存14降级的轨道。当启动该操作时(在块400处),高速缓存管理器24从未修改LRU列表74的LRU端确定(在块402处)第二高速缓存18中未修改轨道,并且使所确定的未修改轨道无效(在块404处),而不降级被无效的未修改轨道到存储设备10,并且还从未修改LRU列表74去除被无效的未修改轨道。
[0044]图12示出由高速缓存管理器24所执行操作的实施例,用以将第二高速缓存12中的已修改轨道降级到存储设备10。当启动(在块420处)降级操作时,高速缓存管理器24使用(在块422处)空间索引76,以确定第二高速缓存18中的已修改轨道,从而基于已修改轨道在空间索引76中的顺序对在存储设备上的邻近物理位置处的那些已修改轨道进行分组,例如在位置排序的空间索引76中连续条目140 (图6)处的一组轨道。所确定的已分组的已修改轨道(在块424处)被从第二高速缓存18降级到存储设备10。
[0045]图12的操作优化到存储设备10 (其包括顺序存取存储设备)的写入操作,通过使得存储设备10在存储设备10写入表面的物理上最邻近的物理位置处写入轨道,从而最小化存储设备10写入头的寻找量和移动,用以将第二高速缓存18中的轨道写入到存储设备10。基于时间因素将轨道从第一高速缓存16提升到第二高速缓存18,例如它们在LRU列表54、56、58中的位置,而不是以针对到顺序存取存储设备10 (例如硬盘驱动器)的相继写入而优化的次序。因此,图12的操作基于时间排序的已修改轨道在存储设备10上的空间位置而优化这些时间排序的已修改轨道,从而优化在存储设备10处的写入。
[0046]图13示出由高速缓存管理器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中查找。
[0047]利用图13的操作,高速缓存管理器24从最高级的高速缓存14检索所请求的轨道,然后在进入存储设备10之前首先从第二高速缓存18检索,因为高速缓存14和18将具有所请求的轨道的最近已修改版本。首先在第一高速缓存14中查找最新版本,如果不在第一高速缓存14中,则在第二高速缓存18中查找,如果不在高速缓存14、18的任一者中,则在存储设备10中查找。
[0048]所述实施例提供用于允许在主要或第一级高速缓存和存储设备之间使用第二级高速缓存的技术,用以在最快存取第一高速缓存14具有最昂贵的空间、每字节成本时增加高速缓存空间,而比第一高速缓存便宜但比存储设备快的第二高速缓存可用于增加系统中的高速缓存的数据量。当所请求的数据在高速缓存中并可从高速缓存中返回而不必从较慢存取、成本较低的存储设备中检索时,增加较快存取高速缓存的存储空间提高了对高速缓存的数据的存取。另外,在所述实施例中,轨道基于第一高速缓存中的时间排序而被添加到第二高速缓存,然后基于顺序存取存储设备中的空间物理位置而在第二高速缓存中排序,使得降级的轨道被写入到在存储设备中邻近或连续物理位置处的轨道组中,从而优化到存储设备的轨道写入。
[0049]所述操作可被实现为方法、装置或使用标准编程和/或工程技术来产生软件、固件、硬件或其任意组合的计算机程序产品。因此,实施例的个方面可采用在这里一般都可被称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合了软件和硬件方面的实施例形式。此外,实施例的各方面可采用在具有其上体现的计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
[0050]可使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是(例如但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备或前述的任何适当组合。计算机可读存储介质的更具体的例子(非穷尽列表)将包括以下:具有一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何有形的介质,它可包含或存储由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备使用的程序。
[0051]计算机可读信号介质可包括具有在其中体现的计算机可读程序代码的传播数据信号,例如在基带中或作为载波的部分。这种传播的信号可采用各种形式的任一种,包括但不限于电磁的、光学的或其任何合适的组合。计算机可读信号介质可以是除了计算机可读存储介质外以外并可通信、传播或运输由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备使用的程序的任何计算机可读介质。
[0052]可使用任何适当的介质,包括但不限于无线、有线、光纤光缆、射频等或前述的任何适当组合来传送在计算机可读介质上体现的程序代码。
[0053]可以一种或多种编程语言的组合编写用于执行本发明方面的操作的计算机程序代码,所述编程语言包括:诸如Java、Smalltalk、C++等面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规过程编程语言。程序代码可完全在用户的计算机上、部分地在用户的计算机上、作为独立的软件包、部分地在用户的计算机上并部分地在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况中,远程计算机可通过包括局域网(LAN)或广域网(WAN)的任何类型的网络而连接到用户的计算机上,或者可做出到外部计算机的连接(例如使用互联网服务提供商通过互联网)。
[0054]以上参考根据发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或块图描述本发明的方面。将理解的是,流程图说明和/或框图的每个块以及流程图说明和/或框图中的块组合可由计算机程序指令实现。这些计算机程序指令可提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得通过计算机或其它可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图块中指定的功能/动作的装置。
[0055]这些计算机程序指令还可存储在计算机可读介质中,该计算机可读介质可以指引计算机、其它可编程数据处理装置或其它设备以特定方式工作,使得计算机可读介质中存储的指令产生包括指令的制造物品,该指令执行流程图和/或框图块中指定的功能/动作。
[0056]计算机程序指令还可加载到计算机、其它可编程数据处理装置或其它设备上,以使得一系列的操作步骤在计算机、其它可编程装置或其它设备上执行,用以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的过程。
[0057]术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”是指“本发明的一个或多个(但不是全部)实
施例”,除非另有明确规定。
[0058]术语“包含”、“包括”、“具有”及其变体的是指“包含但不限于”,除非另有明确规定。
[0059]项目的枚举列表并不暗示任何或所有的项目是相互排斥的,除非另有明确规定列举。
[0060]术语“一个”和“该”是指“一个或多个”,除非另有明确规定。
[0061]彼此通信的设备不需要彼此连续通信,除非另有明确规定。此外,彼此通信的设备可直接通信或者通过一个或多个媒介间接地通信。
[0062]具有彼此通信的几个组件的实施例的描述并不暗示需要所有的这些组件。相反,描述各种可选的组件来示出本发明的各种各样的可能实施例。
[0063]此外,虽然以相继次序描述过程步骤、方法步骤、算法等,但是这样的过程、方法和算法可被配置为以可替换的次序工作。换言之,可被描述的任何步骤的序列或次序并不一定指示以该次序执行步骤的需要。也可以任何实用的次序执行此处所述的过程步骤。此外,可以同时执行某些步骤。
[0064]当在此处描述单个设备或物品时,将易于显而易见的是,可使用一个以上的设备/物品(不论它们协作与否)来代替单个设备/物品。同样,当此处描述一个以上的设备或物品时(不论它们协作与否),将易于显而易见的是,可使用单个设备/物品来取代一个以上的设备或物品,或者可使用不同数目的设备/物品来取代所示数目的设备或程序。一设备的功能和/或特征可选地可由一个或多个其它设备实施,所述一个或多个其它设备未被明确描述为具有这样的功能/特征。因此,本发明的其它实施例不需要包括设备本身。
[0065]图7-图13示出的操作显示以某一次序发生的某些事件。在可替代的实施例中,可以不同的次序执行某些操作,修改或删除某些操作。此外,步骤可添加到上述逻辑,并且仍然符合所述实施例。此外,此处所述的操作可能相继发生,或者可并行处理某些操作。更进一步地,操作可由单个处理单元或由分布式处理单元执行。
【权利要求】
1.一种计算机程序产品,用于管理包括第一高速缓存、第二高速缓存和存储设备的高速缓存系统中的数据,所述计算机程序产品包括具有在其中体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码执行以实施操作,所述操作包括: 在所述第一高速缓存中保持所述存储设备中的受输入/输出(I/o)请求支配的已修改轨道和未修改轨道; 将所述已修改轨道和未修改轨道从所述第一高速缓存降级; 将从所述第一高速缓存降级的所述已修改轨道和未修改轨道提升到所述第二高速缓存; 丢弃从所述第二高速缓存降级的未修改轨道; 对所述第二高速缓存中的在所述存储设备上的邻近物理位置处的已修改轨道进行分组;以及 将已分组的已修改轨道从所述第二高速缓存降级到所述存储设备。
2.根据权利要求1的计算机程序产品,其中所述第一高速缓存是比所述第二高速缓存快的存取设备,并且其中所述第二高速缓存是比所述存储设备快的存取设备。
3.根据权利要求1的计算机程序产品,其中所述第一高速缓存包括随机存取存储器(RAM),所述第二高速缓存包括闪存设备,而所述存储设备包括顺序写入设备。
4.根据权利要求1的计算机程序产品,其中所述操作还包括: 以基于所述第二高速缓存中的已修改轨道在所述存储设备中的物理位置的排序,保持指示所述第二高速缓存中的已修改轨道的空间索引,其中所述空间索引用于基于所述第二高速缓存中的已修改轨道在所述空`间索引中的次序确定在所述存储设备上的邻近物理位置处的将被分组的已修改轨道。
5.根据权利要求1的计算机程序产品,其中所述操作还包括: 确定所述第一高速缓存中的待降级的已修改轨道是否是相继轨道; 将被确定为是相继的所述待降级的已修改轨道写入到所述存储设备,而绕过所述第二高速缓存;以及 将被确定为是非相继的所述待降级的已修改轨道提升到所述第二高速缓存。
6.根据权利要求1的计算机程序产品,其中被提升到所述第二高速缓存的从所述第一高速缓存降级的已修改轨道和未修改轨道包括联机线事务处理(OLTP)轨道。
7.根据权利要求1的计算机程序产品,其中所述操作还包括: 丢弃为相继未修改轨道的所述待降级的未修改轨道,而不将被降级的相继未修改轨道写入到所述第二高速缓存或存储设备,其中从所述第一高速缓存降级的未修改非相继轨道被提升到所述第二高速缓存。
8.根据权利要求1的计算机程序产品,其中所述操作还包括: 保持指示所述第一高速缓存中的未修改非相继轨道的第一 LRU列表; 保持指示所述第一高速缓存中的未修改相继轨道的第二 LRU列表; 确定所述第一高速缓存中的待降级的未修改非相继轨道; 使用所述第一 LRU列表来确定待降级的未修改非相继轨道; 确定所述第一高速缓存中的待降级的未修改相继轨道;以及 使用所述第二 LRU列表来确定待降级的未修改相继轨道。
9.根据权利要求1的计算机程序产品,其中所述操作还包括: 保持所述第二高速缓存中的未修改轨道的最近最少使用(LRU)列表; 确定需要从所述第二高速缓存降级以释放空间的轨道; 从所述第二高速缓存中的未修改轨道的LRU列表确定未修改轨道;以及 从所述第二高速缓存无效所确定的未修改轨道。
10.根据权利要求1的计算机程序产品,其中所述操作还包括: 在所述第二高速缓存中的日志结构阵列(LSA)中存储从所述第一高速缓存降级的已修改轨道和未修改轨道;以及 对于所述第二高速缓存保持LSA索引,以指示所述第二高速缓存中的轨道,以及对于每个轨道保持到所述轨道的控制块的指针,以指针指示轨道在所述LSA中的位置。
11.根据权利要求1的计算机程序产品,其中所述操作还包括: 将添加到所述第一高速缓存的已修改轨道写入到高速缓存备份设备; 保持指示所述第一高速缓存中的已修改轨道的第一高速缓存已修改LRU列表; 确定待从所述高速缓存备份设备降级的数据; 响应于所述第一 高速缓存已修改LRU列表为满,使用所述第一高速缓存已修改LRU列表来确定待从所述第一高速缓存降级的已修改轨道;以及 从所述高速缓存备份设备丢弃作为所确定的待降级的已修改轨道的副本的轨道。
12.根据权利要求1的计算机程序产品,其中所述操作还包括: 接收对于所请求的轨道的读取请求; 在所述第一高速缓存中检索任何所请求的轨道以返回给所述读取请求; 检索未在所述第一高速缓存中找到而在所述第二高速缓存中的任何所请求的轨道以返回给所述读取请求;以及 从所述存储设备中检索未在所述第一高速缓存和第二高速缓存中找到的任何所请求的轨道以返回给所述读取请求;以及 将从所述第二高速缓存和存储设备中检索的任何所请求的轨道提升到所述第一高速缓存。
13.一种与存储设备进行通信的系统,包括: 第一高速缓存; 第二高速缓存; 处理器; 计算机可读存储介质,具有由所述处理器执行以实施操作的代码,所述操作包括: 在所述第一高速缓存中保持所述存储设备中的受输入/输出(I/O)请求支配的已修改轨道和未修改轨道; 将所述已修改轨道和未修改轨道从所述第一高速缓存降级; 将从所述第一高速缓存降级的所述已修改轨道和未修改轨道提升到所述第二高速缓存; 丢弃从所述第二高速缓存降级的未修改轨道; 对所述第二高速缓存中的在所述存储设备上的邻近物理位置处的已修改轨道进行分组;以及将已分组的已修改轨道从所述第二高速缓存降级到所述存储设备。
14.根据权利要求13的系统,其中所述第一高速缓存包括随机存取存储器(RAM),所述第二高速缓存包括闪存设备,而所述存储设备包括顺序写入设备。
15.根据权利要求13的系统,其中所述操作还包括:以基于所述第二高速缓存中的已修改轨道在所述存储设备中的物理位置的排序,保持指示所述第二高速缓存中的已修改轨道的空间索引,其中所述空间索引用于基于所述第二高速缓存中的已修改轨道在所述空间索引中的次序确定在所述存储设备上的邻近物理位置处的将被分组的已修改轨道。
16.根据权利要求13的系统,其中所述操作还包括: 确定所述第一高速缓存中的待降级的已修改轨道是否是相继轨道; 将被确定为是相继的所述待降级的已修改轨道写入到所述存储设备,而绕过所述第二高速缓存;以及 将被确定为是非相继的所述待降级的已修改轨道提升到所述第二高速缓存。
17.根据权利要求13的系统,其中所述操作还包括: 丢弃为相继未修改轨道的所述待降级的未修改轨道,而不将被降级的相继未修改轨道写入到所述第二高速缓存或存储设备,其中从所述第一高速缓存降级的未修改非相继轨道被提升到所述第二高速缓存。
18.根据权利要求13的计算机程序产品,其中所述操作还包括: 保持指示所述第一高速缓存中的未修改非相继轨道的第一 LRU列表; 保持指示所述第一高速缓存中的未修改相继轨道的第二 LRU列表; 确定所述第一高速缓存中的待降级的未修改非相继轨道; 使用所述第一 LRU列表来确定待降级的未修改非相继轨道; 确定所述第一高速缓存中的待降级的未修改相继轨道;以及 使用所述第二 LRU列表来确定待降级的未修改相继轨道。
19.根据权利要求13的计算机程序产品,其中所述操作还包括: 接收对于所请求的轨道的读取请求; 在所述第一高速缓存中检索任何所请求的轨道以返回给所述读取请求; 检索未在所述第一高速缓存中找到而在所述第二高速缓存中的任何所请求的轨道以返回给所述读取请求;以及 从所述存储设备中检索未在所述第一高速缓存和第二高速缓存中找到的任何所请求的轨道以返回给所述读取请求;以及 将从所述第二高速缓存和存储设备中检索的任何所请求的轨道提升到所述第一高速缓存。
20.—种方法,包括: 在所述第一高速缓存中保持所述存储设备中的受输入/输出(I/O)请求支配的已修改轨道和未修改轨道; 将所述已修改轨道和未修改轨道从所述第一高速缓存降级; 将从所述第一高速缓存降级的所述已修改轨道和未修改轨道提升到所述第二高速缓存; 丢弃从所述第二高速缓存降级的未修改轨道;对所述第二高速缓存中的在所述存储设备上的邻近物理位置处的已修改轨道进行分组;以及 将已分组的已修改轨道从所述第二高速缓存降级到所述存储设备。
21.根据权利要求20的方法,其中所述第一高速缓存包括随机存取存储器(RAM),所述第二高速缓存包括闪存设备,而所述存储设备包括顺序写入设备。
22.根据权利要求20的方法,还包括:以基于所述第二高速缓存中的已修改轨道在所述存储设备中的物理位置的排序,保持指示所述第二高速缓存中的已修改轨道的空间索弓丨,其中所述空间索引用于基于所述第二高速缓存中的已修改轨道在所述空间索引中的次序确定在所述存储设备上的邻近物理位置处的将被分组的已修改轨道。
23.根据权利要求20的方法,还包括: 确定所述第一高速缓存中的待降级的已修改轨道是否是相继轨道; 将被确定为是相继的所述待降级的已修改轨道写入到所述存储设备,而绕过所述第二高速缓存;以及 将被确定为是非相继的所述待降级的已修改轨道提升到所述第二高速缓存。
24.根据权利要求20的方法,还包括: 丢弃为相继未修改轨道的所述待降级的未修改轨道,而不将被降级的相继未修改轨道写入到所述第二高速缓存或存储设备,其中从所述第一高速缓存降级的未修改非相继轨道被提升到所述第二高速缓存。
25.根据权利要求20 的 方法,还包括: 保持指示所述第一高速缓存中的未修改非相继轨道的第一 LRU列表; 保持指示所述第一高速缓存中的未修改相继轨道的第二 LRU列表; 确定所述第一高速缓存中的待降级的未修改非相继轨道; 使用所述第一 LRU列表来确定待降级的未修改非相继轨道; 确定所述第一高速缓存中的待降级的未修改相继轨道;以及 使用所述第二 LRU列表来确定待降级的未修改相继轨道。
26.根据权利要求20的方法,还包括: 接收对于所请求的轨道的读取请求; 在所述第一高速缓存中检索任何所请求的轨道以返回给所述读取请求; 检索未在所述第一高速缓存中找到而在所述第二高速缓存中的任何所请求的轨道以返回给所述读取请求;以及 从所述存储设备中检索未在所述第一高速缓存和第二高速缓存中找到的任何所请求的轨道以返回给所述读取请求;以及 将从所述第二高速缓存和存储设备中检索的任何所请求的轨道提升到所述第一高速缓存。
【文档编号】G06F12/16GK103562887SQ201280024839
【公开日】2014年2月5日 申请日期:2012年5月22日 优先权日:2011年5月23日
【发明者】M·T·本哈斯, L·M·古普塔, M·J·卡洛斯, B·S·吉尔 申请人:国际商业机器公司

最新回复(0)