CN103207839B - 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 - Google Patents

存储的高速缓存内的轨道清除的高速缓存管理方法和系统 Download PDF

Info

Publication number
CN103207839B
CN103207839B CN201310016323.5A CN201310016323A CN103207839B CN 103207839 B CN103207839 B CN 103207839B CN 201310016323 A CN201310016323 A CN 201310016323A CN 103207839 B CN103207839 B CN 103207839B
Authority
CN
China
Prior art keywords
list
track
speed cache
described list
tracks
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
CN201310016323.5A
Other languages
English (en)
Other versions
CN103207839A (zh
Inventor
M·T·本哈斯
L·M·伽普他
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 CN103207839A publication Critical patent/CN103207839A/zh
Application granted granted Critical
Publication of CN103207839B publication Critical patent/CN103207839B/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

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

存储的高速缓存内的轨道清除的高速缓存管理方法和系统
技术领域
本发明涉及用于在存储装置的高速缓存内进行轨道清除的高速缓存管理的计算机程序产品、系统和方法。
背景技术
高速缓存管理系统由于在(与存储所请求的轨道的存储装置相比)较快速存取的存储装置(例如,存储器)内的读操作和写操作而缓冲最近访问的存储装置内的轨道。与较慢速存取的存储装置中返回所请求的轨道相比,对在较快速存取的高速缓存存储器内的轨道的后续读请求以更快的速度返回,从而减小了读延迟。当指向存储装置的所修改的轨道被写入高速缓存存储器时并且在所修改的轨道向外写到存储装置(例如,硬盘驱动器)之前,高速缓存管理系统也可以完全返回写请求。存储装置的写延迟通常比写入高速缓存存储器的延迟明显要长。因而,使用高速缓存也会减小写延迟。
高速缓存管理系统可以使对于每个轨道都具有一个条目的链接表保持存储于高速缓存内,该链接表可以包括在写入存储装置之前缓存于高速缓存内的写入数据或读出数据。在通常使用的最近最少使用的(LRU)高速缓存技术中,如果在高速缓存内的轨道被访问,即,高速缓存“命中”,则所访问轨道在LRU列表内的条目被高速缓存管理器移动到列表的最近最多使用(MRU)端。如果所请求的轨道不在高速缓存内,即,高速缓存未命中,则可以去除其条目于列表的LRU端的在高速缓存内的轨道。
一种清除操作,通常称为轨道降级(demote),从高速缓存中简单地删除轨道。例如,含有读出数据的轨道可以被高速缓存管理器降级。另一种轨道清除操作使轨道从高速缓存内离台(destage),以便将轨道发送到存储装置。例如,含有写入数据的轨道可以被高速缓存管理器使其从高速缓存内离台,以便存储于存储装置内。
在典型的LRU高速缓存技术中,从存储装置登台(stage)到高速缓存内的轨道数据的条目通常被添加至LRU列表的MRU端。因此,访问更频繁的轨道很有可能保留于高速缓存内,然而访问较不频繁的数据将会更可能被从列表的LRU端去除,以便为新访问的轨道在高速缓存内腾出空间。
高速缓存管理器扫描轨道列表,以识别出能够被降级或者离台的轨道。高速缓存管理器典型地使用通常称为“LRU锁”的“锁”来锁定列表,以防止列表在扫描正在进行时被其他处理器修改。在许多LRU高速缓存技术中,高速缓存管理器在整个扫描期间保持住LRU锁。另外,如果轨道被识别为将从高速缓存内清除出,则高速缓存管理器典型地继续保持住LRU锁,以进行通常被当作扫描进程来进行的降级或离台过程。
高速缓存管理器可以为其他高速缓存管理操作保持住该锁。例如,在高速缓存内的轨道已经于读操作或写操作内被访问之后,高速缓存管理器典型地在该轨道于列表中的条目位置被高速缓存管理器移至列表MRU端时保持住该锁。
对于列表扫描和轨道清除操作,高速缓存管理器为了防止其他处理器访问该列表保持住该锁的持续时间倾向于是相对长的。高速缓存管理器为典型的MRU操作保持住该锁的持续时间倾向于是相对短的,但是它们在数量上能够是相对频繁的。
其他技术同样可以用来管理高速缓存的轨道清除。例如,已经访问过的轨道可以使用新近位(recencybit)标记为“已访问”。
发明内容
在本说明书的一个方面,描述了用于在数据存储系统内管理高速缓存的操作。在一个实施例中,操作包括:将在存储装置内的受到输入/输出(I/O)请求的轨道保存于高速缓存内;在高速缓存内扫描轨道列表以识别出待进行高速缓存清除处理的候选者,该高速缓存清除处理包括使所识别的轨道降级离开高速缓存和使所识别的轨道离台至存储装置之一;锁定列表以在轨道列表被扫描时防止其他处理器访问列表;识别轨道列表中待进行高速缓存清除处理的轨道;中断对轨道列表的扫描;存储指向根据扫描被中断的列表内的位置的轨道列表内的位置的指针;释放列表的锁定以允许其他处理器在所识别的轨道正在进行高速缓存清除处理时访问列表;以及通过使所识别的轨道降级离开高速缓存和使所识别的轨道离台至存储装置之一对所识别的轨道进行高速缓存清除处理。
在另一个方面,描述了更多的操作,包括:恢复对列表的锁定以防止其他处理器在轨道列表正被扫描时访问列表,已经在列表内的根据所存指针的位置处恢复对轨道列表扫描。
在又一个方面,上述列表具有最近最少使用(LRU)端和最近最多使用(MRU)端,并且上述扫描是LRU扫描,该LRU扫描包括识别最近最少使用的(LRU)轨道以及对列表进行LRU更新,并且上述LRU更新包括将所识别的LRU轨道在列表上的位置移向列表的LRU端。
在另外一个方面,描述了更多的操作,包括:对在高速缓存内的列表上的轨道进行I/O处理,其中I/O处理包括对被I/O处理的轨道的读和写之一,锁定列表以防止其他处理器在轨道列表正在更新时访问列表,对列表进行MRU更新,其中所述MRU更新包括将I/O处理的轨道识别为MRU轨道以及将所识别的MRU轨道在列表上的位置移向列表的MRU端,以及释放对列表的锁定以允许其他处理器访问列表。
在又一个方面,上述MRU更新包括确定指针是否指向列表上由所识别的MRU轨道占用的位置,该所识别的列表位置将要被移向列表的MRU端,并且如果是,则更新指针以指向列表上的前一位置。
在另外一个方面,描述了更多的操作,包括:在扫描启动时启动定时器,对预定的时间段进行计时,在列表内的根据所存储的指针的位置处启动对轨道列表的扫描,以及在该预定的时间段到期时:中断对轨道列表的扫描,存储指向根据列表内的扫描被中断的位置的轨道列表内的位置的指针,并且释放对列表的锁定以允许其他处理器访问列表。
在另外一个方面,描述了更多的操作,包括:设置轨道的定额,用于高速缓存清除处理,在启动扫描时启动被进行高速缓存清除处理的轨道计数,启动在列表内的根据所存储的指针的位置处对轨道列表的扫描,并且每当轨道由高速缓存清除处理来处理时就使计数递增,将该计数与定额比较,并且在达到定额时,中断对轨道列表的扫描,存储指向根据列表内扫描被中断的位置的在轨道列表内的位置的指针,并且释放对列表的锁定以允许其他处理器访问列表。
也可以实现其他特征和方面,取决于特定的应用。
附图说明
图1示出了计算环境的一个实施例。
图2示出了高速缓存管理信息的一个实施例。
图2a示出了LRU列表的一个实施例。
图3示出了高速缓存控制块的一个实施例。
图4示出了空间索引条目的一个实施例。
图5示出了用于从高速缓存中去除轨道的操作的一个实施例。
图6示出了用于在高速缓存内更新轨道列表的操作的一个实施例。
具体实施方式
如同下面将要更详细地描述的,在一个实施例中,例如,当轨道已经被识别为用于高速缓存清除处理(例如,降级轨道)的轨道时,高速缓存管理器在扫描期间释放列表锁。通过释放列表锁,高速缓存管理器允许其他处理器在所识别的轨道进行高速缓存清除处理时访问列表。在一个方面,在列表锁释放之前,前一条目在列表中的位置可以存储于游标或指针内,使得指针值指向列表中的前一条目。一旦列表锁释放了,被识别为用于高速缓存清除处理的轨道可以被处理,以从高速缓存内去除轨道。对于使轨道降级的高速缓存清除处理,轨道编号被从列表中去除,并且轨道自身被从高速缓存中删除。对于使轨道离台的高速缓存清除处理,轨道编号被从列表中去除,并且轨道自身被写回到存储装置以及被从高速缓存中删除。
一旦对所识别轨道的高速缓存清除处理完成了,就可以重获列表锁并且可以在指针所识别的列表条目处恢复扫描。如果另一处理器去除或者(否则的话)修改由列表中的指针识别的列表条目,则可以在扫描恢复时重调指针以使其指向前一轨道或者另一个适合的条目。
图1示出了计算环境的一个实施例。多个主机2a、2b…2n可以通过网络6向存储控制器4提交输入/输出(I/O)请求,以访问在存储装置10内的卷8(例如,逻辑单元号、逻辑装置、逻辑子系统等)的数据。存储控制器4包括:包含一个或多个具有单核或多核的处理器的处理器复合体12、一个或多个高速缓存14、用于备份高速缓存14内的轨道的一个或多个高速缓存备份装置16。高速缓存14缓存在主机2a、2b…2n和存储装置10之间传输的高速缓存数据。以这种方式,高速缓存14保存在存储装置内受到输入/输出(I/O)请求的轨道。高速缓存备份装置16可以在高速缓存14内提供对轨道的非易失性存储。在另一个实施例中,高速缓存备份装置16可以位于与高速缓存14的供电界限(powerboundary)不同的供电界限上的集群或硬件内。
存储控制器4具有存储器20,该存储器20包括:用于管理在主机2a、2b…2n和存储装置10之间传输的轨道的传输的存储管理器22,以及用于在高速缓存14和高速缓存备份装置16内管理在主机2a、2b…2n和存储装置10之间传输的数据的高速缓存管理器24。轨道可以包括配置于存储装置10内的任意单位的数据,例如,轨道、逻辑块地址(LBA)等,该逻辑块是较大的轨道分组的一部分,例如,卷、逻辑装置等。高速缓存管理器24保存高速缓存管理信息26,以管理在高速缓存14内的读轨道(未修改的)和写轨道(修改的)。高速缓存备份装置索引30提供指向高速缓存备份装置16内的位置的轨道标识符的索引。
存储管理器22和高速缓存管理器24在图1中被示为装载到存储器20之内的并且由处理器复合体12执行的程序代码。作为选择,部分或全部功能可以用硬件装置,例如用专用集成电路(ASIC)实现于存储控制器4内。
在某些实施例中,高速缓存14可以将轨道存储于结构化日志阵列(LSA)内,在该结构化日志阵列内,轨道按照接收的先后顺序写入,从而提供写入高速缓存14的轨道的时间排序。在LSA中,已经存在于LSA内的新近版本的轨道被写入LSA的末端。在可替换的实施例中,高速缓存14可以按照与在LSA中的格式不同的格式存储数据。
在一个实施例中,高速缓存14可以包括随机存取存储器(RAM)(例如,动态随机存取存储器(DRAM)),或者可以包括闪存(例如,固态装置),或者两者,并且存储装置10包括一个或多个顺序访问的存储装置,例如,硬盘驱动器和磁带。存储装置10可以包括单个顺序访问的存储装置或者可以包括存储装置阵列,例如,简单磁盘捆绑(JBOD)、直接存取存储装置(DASD)、独立磁盘冗余阵列(RAID)、虚拟装置等。在一个实施例中,高速缓存14是比存储装置10更快的存取装置。此外,高速缓存14可以具有比存储装置10内的存储装置更大的单位存储成本。
高速缓存14可以是存储器20的一部分或者被实现于单独的存储器装置(例如,DRAM)内。在一个实施例中,高速缓存备份装置16可以包括诸如非易失性存储器之类的非易失性备份存储装置(NVS),例如,有备用电池的随机存取存储器(RAM)、静态RAM(SRAM)等。
网络6可以包括存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、互联网和内联网等。
图2示出了高速缓存管理信息26的一个实施例,包括:用于为了控制在控制块目录52中的块而提供对高速缓存14内的轨道的索引的轨道索引50;用于提供高速缓存14内的未修改的顺序轨道的时间排序的未修改的顺序LRU列表54;用于提供高速缓存14内的已修改的顺序及非顺序轨道的时间排序的已修改的LRU列表56;以及用于提供高速缓存14内的未修改的非顺序轨道的时间排序的未修改的非顺序LRU列表58。应当理解,高速缓存可以具有按照多种格式组织的列表,取决于特定的应用。
在某些实施例中,在确定高速缓存备份装置16为满时,所修改的LRU列表56被用来使所修改的轨道从高速缓存14中离台,使得在高速缓存备份装置16内的那些轨道的副本可以被丢弃,以便在高速缓存备份装置16内为新修改的轨道腾出空间。在某些实施例中,高速缓存管理信息26还可以包括空间索引76,用于基于所修改的轨道存储于存储装置10内的物理位置来提供所修改轨道的空间排序。
所有LRU列表54、56和58都可以包括轨道在高速缓存14内的轨道ID,并且根据所识别的轨道上次被访问的时间来排序。LRU列表54、56和58具有用于指示最近访问最多的轨道的最近最多使用(MRU)端以及用于指示最近使用或访问最少的轨道的LRU端。例如,图2a示出了LRU列表54的LRU端60和MRU端62。添加至高速缓存14的轨道的轨道ID被添加至LRU列表的MRU端,并且被降级离开高速缓存14的轨道从LRU端访问。轨道索引50和空间索引76可以包括分散索引表(SIT)。类型可替换的数据结构可以被用来提供轨道在高速缓存14内的时间排序、轨道在高速缓存内的空间排序。非顺序的轨道可以包括在线事务处理(OLTP)轨道,该轨道通常包括不完全随机的且具有某些位置上的关联(即,具有被重复访问的可能性)的小块写入。
根据本说明书的一个方面,例如,当轨道已经被识别为用于高速缓存清除处理(例如,使轨道降级)的轨道时,每个列表54、56和58分别具有允许高速缓存管理器(例如,高速缓存管理器24)在关联列表54、56和58的扫描期间释放列表锁的关联的指针54a、56a和58a。例如,图2a示出了指向在LRU列表54的LRU端60处的条目的指针54a。通过释放列表,高速缓存管理器允许其他处理器在所识别的轨道进行高速缓存清除处理时访问列表。在一个实施例中,在列表锁被释放之前,在列表内的前一条目的位置可以存储于关联的游标或指针内,使得指针值指向在列表中的前一条目。一旦列表锁被释放了,被识别用于高速缓存清除处理的轨道就可以被处理,以便从高速缓存中去除该轨道。一旦对所识别轨道的高速缓存清除处理完成了,就可以重获列表锁并且可以在指针所识别的列表条目处恢复扫描。
图3示出了在控制块目录52中的高速缓存控制块100条目的一个实施例,包括控制块标识符(ID)102、轨道在高速缓存14内的物理位置的高速缓存位置104、指示轨道为已修改还是未修改的信息106以及指示轨道为顺序访问还是非顺序访问的信息108。在某些实施例中,控制块条目也可以被提供用于识别出轨道在LSA内所处的位置的LSA位置。图4示出了空间索引条目140,包括:轨道在高速缓存14内的轨道标识符142以及轨道在存储装置10内存储的物理位置144,例如,柱面、盘片、块地址和存储装置标识符。
图5示出了由高速缓存管理器24执行的用于从高速缓存14中去除轨道的操作的一个实施例。在所示的实施例中,图5的高速缓存清除过程使未修改的轨道降级离开高速缓存14。但是,应当理解,在某些实施例中,也可以执行其他高速缓存操作,例如,轨道离台。导致轨道被从高速缓存中清除的操作可以在确定例如将要在高速缓存14内腾出可用的空间以便给高速缓存添加新的轨道时启动。
在一个实施例中,在启动(在块200处)用于识别出为了在高速缓存14内释放空间而进行高速缓存清除处理的轨道的操作时,高速缓存管理器24可以启动设置了预定时间段的定时器(在块202处),该预定时间段设置了对已经启动的过程的限制。可以选择适当的持续时间,取决于特定的应用。在某些实施例中,持续时间可以是可变的,取决于不同的条件。其他实施例可以不具有对包括高速缓存轨道清除的过程的时间限制。
此外,在一个实施例中,高速缓存管理器24还可以设置为预定数量的轨道的定额(在块204处),该定额对将要在已经启动的过程中去除的轨道的数量设置了限制。可以选择适当的轨道数量限制,取决于特定的应用。在某些实施例中,待去除的轨道的数量可以是可变的,取决于不同的条件,并且可以更大或更小,取决于条件。其他实施例可以不具有对高速缓存清除过程的轨道限制。
要防止其他处理器访问和修改从中选出待去除的轨道的列表,高速缓存管理器保护列表锁(例如,LRU锁)(块206),用于图5的过程。因而,例如,诸如未修改的顺序LRU列表54或未修改的非顺序列表58(图2)之类的列表可以由用于执行图5的过程的处理器锁定,从而防止其他处理器在列表被扫描以识别出待从高速缓存中清除的轨道时访问和修改所锁定的列表。
应当相信,在许多现有的LRU高速缓存技术中,高速缓存管理器在扫描的整个持续时间内保持住LRU锁。另外,如果轨道被识别为待从高速缓存中清除的,则在许多现有的LRU高速缓存技术中的高速缓存管理器典型地继续保持住LRU锁,用于通常被当作扫描进程的降级或离台过程。因而,在许多现有的LRU高速缓存技术中,高速缓存管理器为了防止其他处理器访问列表而保持住该锁的持续时间倾向于是相对长的,用于列表扫描和轨道清除操作。
根据本说明书的一个方面,以及如同下面将要更详细地描述的,例如,当轨道已经被识别为用于高速缓存清除处理的轨道(例如,使轨道降级)时,高速缓存管理器(例如,高速缓存管理器24)能够在扫描期间释放列表锁。通过释放列表锁,高速缓存管理器允许其他处理器在所识别的轨道进行高速缓存清除处理时访问列表。在一个实施例中,在列表锁被释放之前,在列表内的前一条目的位置可以存储于游标或指针内,使得指针值指向列表中的前一条目。一旦列表锁被释放,被识别用于高速缓存清除处理的轨道可以被处理,以从高速缓存中去除该轨道。对于使轨道降级的高速缓存清除处理,轨道编号被从列表中去除并且轨道自身被从高速缓存中删除。对于使轨道离台的高速缓存清除处理,轨道编号被从列表中去除并且轨道自身被写回到存储装置并且从高速缓存中删除。
一旦对所识别轨道的高速缓存清除处理完成了,就可以重获列表锁并且可以在指针所识别的列表条目处恢复扫描。如果另一处理器从列表中去除或者(否则的话)修改由指针识别的列表条目,就可以在扫描恢复时重调指针以使其指向前一轨道或者另一个适当的条目。
因而,在图5的实施例中,高速缓存管理器读出(块208)读扫描开始指针并且将扫描的当前位置设置到由扫描开始指针识别的列表条目。扫描开始指针的值可以在扫描初始化时根据待扫描的列表的特定位置或条目来初始化为适当的值(块200)。例如,扫描开始指针可以在扫描初始化时初始化(块200),以指向例如在列表最近最少使用(LRU)端的第一条目。可以选择其他初始化值,取决于特定的应用。以这种方式,可以将列表的扫描启动于列表内根据所存储的指针的位置。
在扫描的当前位置的列表条目被检查(块210),并且作出在扫描的当前位置的列表条目的轨道是否应当被处理以从高速缓存中清除的确定(块212)。如果在扫描的当前位置的列表条目的轨道未被识别用于高速缓存清除处理,则扫描开始指针被设置(块214),使得扫描的当前位置被移至待扫描的轨道列表的下一条目。例如,如果列表正被按顺序扫描,则扫描开始指针可以递增(或递减,视情况而定),以指向列表的下一相邻条目。其他方法可以被用来设置扫描开始指针,以使其指向待扫描的下一条目,视情况而定。
在操作202中初始化的定时器同样可以被检查,以确定扫描期限是否已经到期(块215)。如果是,则可以释放列表锁(块216),并且扫描过程终止(块217)。以这种方式,指针存储(块214)指向根据列表内扫描终止的位置的在轨道列表内的位置的值。
如果扫描期限尚未到期(块214),则对列表的扫描继续进行并且在扫描的下一当前位置的列表条目被检查(块210),并且作出在扫描的当前位置的列表条目的轨道是否应当被处理以从高速缓存中清除的确定(块212)。如果在扫描的当前位置列表条目的轨道被识别用于高速缓存清除处理,则对列表的扫描被中断(块218)并且扫描开始指针被设置(块218),使得扫描的当前位置往回移至待扫描的轨道列表的前一条目。例如,如果列表正被按顺序扫描,则扫描开始指针可以递减(或递增,视情况而定),以指向列表的前一相邻条目。其他方法可以被用来设置扫描开始指针以指向前一扫描条目,视情况而定。列表的其他位置同样可以存储,取决于特定的应用。以这种方式,指针存储(块218)指向根据列表内扫描被中断用于所识别轨道的高速缓存清除处理的位置的在轨道列表内的位置的值。
在复位扫描开始指针使得扫描开始指针指向待扫描的轨道列表的前一条目时,被扫描的轨道列表的列表锁被释放(块220),以允许其他处理器在被识别(块212)用于高速缓存清除处理的轨道被处理(块222)时访问列表。在所示的实施例中,图5的高速缓存清除过程(块222)使未修改的轨道降级离开高速缓存14,并且从被扫描的列表中去除该轨道的识别。但是,应当理解,在某些实施例中,可以执行其他高速缓存操作,例如,轨道离台。
在对所识别轨道的高速缓存清除处理完成时,自从扫描启动之后由高速缓存清除处理处理的轨道数量的计数可以递增。另外,还可以作出是否已经达到用于设置对于在高速缓存轨道清除过程中待去除的轨道数量的限制的轨道定额的确定(块224)。因而,可以将自从扫描启动之后由高速缓存清除处理处理的轨道数量的计数与定额比较。如果已经达到定额,则可以终止扫描(块226)。以这种方式,指针存储(块218)指向根据列表内扫描被中断(块218)和被终止(块226)的位置的在轨道列表内的位置的值。
如果尚未达到定额,在操作202中初始化的定时器也可以被检查,以确定扫描期限是否已经到期(块228)。如果是,则可以终止扫描(块217)。以这种方式,指针存储(块218)指向根据列表内扫描被中断(块218)和被终止(块217)的位置的在轨道列表内的位置的值。否则,高速缓存管理器能够重获(块206)列表锁,用于图5的过程,以便恢复锁定列表,从而再次防止其他处理器在对列表的扫描恢复(块208-228)时访问和修改列表。
因而,在图5的实施例中,高速缓存管理器再次读出(块208)读扫描开始指针并且将扫描的当前位置设置到由扫描开始指针识别的列表条目。以这种方式,在列表内根据所存储指针的位置恢复对列表的扫描。在图5的实施例中,如同以上所说明的,扫描开始指针已经被复位(块218),使得扫描的当前位置往回移至待扫描的轨道列表的前一条目,因为前一当前条目已经被识别用于高速缓存清除处理。扫描恢复并且在扫描的当前位置的列表条目被检查(块210),作出在扫描的当前位置的列表条目的轨道是否应当被处理以从高速缓存中清除的确定(块212)等。
图6示出了由高速缓存管理器24执行的操作的一个实施例,该操作用于响应于为了从被I/O处理的轨道中读出数据或者将数据写入其中的轨道的I/O处理(块300)而更新在高速缓存内的轨道列表。因而,响应于轨道的I/O处理(块300),高速缓存管理器24保护列表锁(块302),用于图6的过程,以便防止其他处理器访问和修改将要响应于对列表上的轨道的I/O处理而更新的列表。
根据本说明书的另一个方面,作出扫描开始指针是否指向进行I/O处理的轨道的列表位置的确定(块304)。如果扫描开始指针的值指向于已经进行I/O处理的轨道的列表条目不同的列表条目,则可以直接进行更新(块308)。另一方面,如果扫描开始指针的值指向已经进行I/O处理的轨道的列表条目,则扫描开始指针被复位(块306),使得在LRU扫描恢复时,LRU的当前位置扫描(图5)将往回移至待扫描的轨道列表的前一条目。
例如,如果对列表的LRU扫描按顺序进行,并且列表位置按顺序编号,则扫描开始指针可以递减(或递增,视情况而定),以指向列表的前一相邻条目。其他方法可以被用来设置扫描开始指针,以使其指向前一扫描条目,视情况而定。列表的其他位置同样可以被存储,取决于特定的应用。以这种方式,指针存储(块306)指向列表内根据作为IO操作的对象的轨道的列表条目的位置的在轨道列表内的位置的值。
在所示的实施例中,已经进行I/O处理的轨道的列表条目通过最近最多使用(MRU)更新过程来更新(块308),该更新过程将列表条目移至列表的MRU端。在列表的MRU更新或其他更新完成时,用于被更新的轨道列表的列表锁可以被释放(块310)以允许其他处理器访问列表,并且更新过程可以被终止(块312)。
所描述的实施例提供了一种高速缓存管理器,例如,高速缓存管理器24,例如当轨道已经被识别为用于高速缓存清除处理(例如,使轨道降级)的轨道时,该高速缓存管理器能够在扫描期间释放列表锁。通过释放列表锁,高速缓存管理器允许其他处理器在所识别的轨道进行高速缓存清除处理时访问列表。在一个实施例中,在列表锁被释放之前,在列表内的前一条目的位置可以存储于游标或指针内,使得指针值指向列表中的前一条目。一旦列表锁被释放,被识别用于高速缓存清除处理的轨道可以被处理,以从高速缓存中去除该轨道。对于使轨道降级的高速缓存清除处理,轨道编号被从列表中去除,并且轨道自身被从高速缓存中删除。对于使轨道离台的高速缓存清除处理,轨道编号被从列表中去除,并且轨道自身被写回到存储装置并且被从高速缓存中删除。
一旦对所识别轨道的高速缓存清除处理完成了,就可以重获列表锁并且可以在指针所识别的列表条目处恢复扫描。如果另一处理器从列表中去除或者(否则的话)修改由指针识别的列表条目,则可以在扫描恢复时重调指针以使其指向前一轨道或另一个适当的条目。
所描述的操作可以使用标准的编程和/或工程技术实现为方法、装置或计算机程序产品,从而生产出软件、固件、硬件或者它们的任意组合。作为选择,实施例的各个方面可以采用以下形式:完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者结合了软件和硬件方面的实施例,这些实施例通常可以全部称为“电路”、“模块”或“系统”。而且,实施例的各个方面可以采用实现于以计算机可读的程序代码实现于其上的一个或多个计算机可读的介质内的计算机程序产品的形式。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、设备或装置,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储装置、磁存储装置、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者装置使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者装置使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
术语“一个实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一种或多个实施例”、“一些实施例”和“某一实施例”意指“本发明的一种或多种(但不是全部)实施例”,除非另有明确规定。
术语“包括”、“包含”、“具有”以及它们的变型意指“包括但不限于”,除非另有明确规定。
所枚举例示的项并不暗示着这些项中的任意或所有项都是互斥的,除非另有明确规定。
术语“一”、“一个”和“该”意指“一个或多个”,除非另有明确规定。
彼此通信的装置不需要是彼此连续通信的,除非另有明确规定。另外,彼此通信的装置可以通过一个或多个中间物来直接或间接通信。
关于具有几个彼此通信的构件的实施例的描述并没有暗示着所有此类构件都是必需的。相反,本文描述了多种可选构件,以说明本发明的各种可能的实施例。
此外,尽管过程步骤、方法步骤、算法等可以按照某种先后顺序来描述,但是此类过程、方法和算法可以被配置,以便按照可替换的顺序来工作。换言之,所描述的任何次序或顺序的步骤并不一定表示这些步骤必须按照该顺序来执行。实际上,本文所描述的过程的步骤可以按照任何顺序来执行。此外,某些步骤可以同时执行。
当在此对单个装置或物品进行描述时,应当很清楚,有多个装置/物品(不管它们是否相互合作)可以用来代替单个装置/物品。类似地,在本文对多个装置或物品进行描述的情形中(不管它们是否相互合作),应当清楚的是,可以使用单个装置/物品来代替该多个装置或物品,或者可以使用不同数量的装置/物品来代替所示出的数量的装置或程序。作为选择,装置的功能和/或特征可以通过未明确描述为具有此类功能/特征的一个或多个其他装置来实现。因而,本发明的其他实施例不需要包括装置自身。
图5-6所示的操作示出了按特定顺序发生的某些事件。在可替换的实施例中,某些操作可以按照不同的顺序执行,被修改或被去除。而且,步骤可以被添加至上述逻辑中,并且仍然符合所描述的实施例。此外,本文所描述的操作可以按顺序发生,或者某些操作可以并行处理。然后,操作还可以由单个处理单元或者由分布式处理单元来执行。
为了说明和描述的目的,前面已经给出了关于本发明的各个实施例的描述。该描述并非是穷尽性的或者是将本发明限定于所公开的精确形式。根据上述教导的许多修改和变更都是可能的。应当指出,本发明的范围并没有受上述详细描述所限定,而是有本文所附的权利要求所限定。上述说明书、实例和数据提供了对本发明的组成的制造和使用的全面描述。由于能够在不脱离本发明的精神和范围的情况下实现本发明的许多实施例,因而本发明处于后面所附的权利要求书的范围之内。

Claims (14)

1.一种在存储装置的高速缓存内进行轨道清除的高速缓存管理的方法,包括:
将存储装置内的受到输入/输出I/O请求的轨道保存于高速缓存内;
扫描高速缓存内的轨道列表以识别出用于高速缓存清除处理的候选者,所述高速缓存清除处理包括以下处理之一:使所识别的轨道降级离开所述高速缓存和使所识别的轨道离台至存储装置;
锁定所述列表以防止其他处理器在所述轨道列表正被扫描时访问所述列表;
识别所述轨道列表中待进行高速缓存清除处理的轨道;
响应于识别出所述轨道列表中待进行高速缓存清除处理的轨道,执行:
中断对所述轨道列表的扫描;
存储指向根据扫描被中断的所述列表内的位置的所述轨道列表内的位置的指针;
释放对所述列表的锁定以允许其他处理器在所识别的轨道正在进行高速缓存清除处理时访问所述列表;以及
通过使所识别的轨道降级离开所述高速缓存和使所识别的轨道离台至存储装置之一对所识别的轨道进行高速缓存清除处理;
在扫描启动时启动定时器以对预定的时间段进行计时;
在所述列表内的根据所存储的指针的位置处启动对所述轨道列表的扫描;以及
在所述预定时间段到期时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
2.根据权利要求1所述的方法,还包括:
恢复对所述列表的锁定以防止其他处理器在所述轨道列表正被扫描时访问所述列表;以及
在所述列表内的根据所存储的指针的位置处恢复对所述轨道列表的扫描。
3.根据权利要求1所述的方法,其中所述列表具有最近最少使用LRU端和最近最多使用MRU端,并且其中所述扫描是包括识别最近最少使用的LRU轨道以及对所述列表进行LRU更新的LRU扫描,其中所述LRU更新包括将所识别的LRU轨道在所述列表上的位置移向所述列表的LRU端。
4.根据权利要求3所述的方法,还包括:
对在高速缓存内的所述列表上的轨道进行I/O处理,其中所述I/O处理包括对进行I/O处理的轨道进行读出和写入之一;
锁定所述列表以防止其他处理器在所述轨道列表正在更新时访问所述列表;
对所述列表进行MRU更新,其中所述MRU更新包括将I/O处理的轨道识别为MRU轨道以及将所识别的MRU轨道在所述列表上的位置移向所述列表的MRU端;以及
释放对所述列表的锁定以允许其他处理器访问所述列表。
5.根据权利要求4所述的方法,还包括:其中所述MRU更新包括确定所述指针是否指向在所述列表上由所识别的MRU轨道占用的位置,该所识别的MRU轨道的列表位置将会被移向所述列表的MRU端;以及如果是,则更新所述指针以指向所述列表上的前一位置。
6.根据权利要求2所述的方法,还包括:
在扫描启动时恢复定时器以对预定的时间段进行计时;
在所述列表内的根据所存储的指针的位置处启动对所述轨道列表的扫描;以及
在所述预定时间段到期时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
7.根据权利要求2所述的方法,还包括:
为高速缓存清除处理设置轨道的定额;
在扫描启动时启动进行高速缓存清除处理的轨道的计数;
在根据所存储的指针的所述列表内的位置处启动对所述轨道列表的扫描;以及
每当轨道通过高速缓存清除处理来处理时就使所述计数递增;
将所述计数与所述定额比较;以及
在达到所述定额时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的所述列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
8.一种在存储装置的高速缓存内进行轨道清除的高速缓存管理的计算系统,包括:
用于存储数据轨道的存储装置;以及
存储控制器,包括多个处理器、用于存储数据轨道的高速缓存以及包含具有实现于其内的计算机可读的程序代码的计算机可读存储介质的高速缓存管理器,所述程序代码由处理器执行以进行管理操作,所述管理操作包括:
将受到输入/输出I/O请求的轨道保存于所述高速缓存内;
扫描高速缓存内的轨道列表以识别出用于高速缓存清除处理的候选者,所述高速缓存清除处理包括以下处理之一:使所识别的轨道降级离开所述高速缓存和使所识别的轨道离台至存储装置;
锁定所述列表以防止其他处理器在所述轨道列表正被扫描时访问所述列表;
识别所述轨道列表中待进行高速缓存清除处理的轨道;
响应于识别出所述轨道列表中待进行高速缓存清除处理的轨道,执行:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的所述列表内的位置的所述轨道列表内的位置的指针;
释放对所述列表的锁定以允许其他处理器在所识别的轨道正在进行高速缓存清除处理时访问所述列表;以及
通过使所识别的轨道降级离开所述高速缓存和使所识别的轨道离台至存储装置之一对所识别的轨道进行高速缓存清除处理;
其中所述管理操作还包括:
在扫描启动时启动定时器以对预定的时间段进行计时;
在所述预定时间段到期时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
9.根据权利要求8所述的计算系统,其中所述管理操作还包括:
恢复对所述列表的锁定以防止其他处理器在所述轨道列表正被扫描时访问所述列表;以及
在所述列表内的根据所存储的指针的位置处恢复对所述轨道列表的扫描。
10.根据权利要求8所述的计算系统,其中所述列表具有最近最少使用LRU端和最近最多使用MRU端,并且其中所述扫描是包括识别最近最少使用的LRU轨道以及对所述列表进行LRU更新的LRU扫描,其中所述LRU更新包括将所识别的LRU轨道在所述列表上的位置移向所述列表的LRU端。
11.根据权利要求10所述的计算系统,其中所述管理操作还包括:
对在高速缓存内的所述列表上的轨道进行I/O处理,其中所述I/O处理包括对进行I/O处理的轨道进行读出和写入之一;
锁定所述列表以防止其他处理器在所述轨道列表正在更新时访问所述列表;
对所述列表进行MRU更新,其中所述MRU更新包括将I/O处理的轨道识别为MRU轨道以及将所识别的MRU轨道在所述列表上的位置移向所述列表的MRU端;以及
释放对所述列表的锁定以允许其他处理器访问所述列表。
12.根据权利要求11所述的计算系统,其中所述管理操作还包括:其中所述MRU更新包括确定所述指针是否指向在所述列表上由所识别的MRU轨道占用的位置,该所识别的MRU轨道的列表位置将会被移向所述列表的MRU端;以及如果是,则更新所述指针以指向所述列表上的前一位置。
13.根据权利要求9所述的计算系统,其中所述管理操作还包括:
在扫描启动时恢复定时器以对预定的时间段进行计时;
在所述列表内的根据所存储的指针的位置处启动对所述轨道列表的扫描;以及
在所述预定时间段到期时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
14.根据权利要求9所述的计算系统,其中所述管理操作还包括:
为高速缓存清除处理设置轨道的定额;
在扫描启动时启动进行高速缓存清除处理的轨道的计数;
在根据所存储的指针的所述列表内的位置处启动对所述轨道列表的扫描;以及
每当轨道通过高速缓存清除处理来处理时就使所述计数递增;
将所述计数与所述定额比较;以及
在达到所述定额时:
中断对所述轨道列表的扫描;
存储指向根据所述扫描被中断的所述列表内的位置的所述轨道列表内的位置的指针;并且
释放对所述列表的锁定以允许其他处理器访问所述列表。
CN201310016323.5A 2012-01-17 2013-01-17 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 Active CN103207839B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/352,218 2012-01-17
US13/352,218 US9804971B2 (en) 2012-01-17 2012-01-17 Cache management of track removal in a cache for storage

Publications (2)

Publication Number Publication Date
CN103207839A CN103207839A (zh) 2013-07-17
CN103207839B true CN103207839B (zh) 2016-06-08

Family

ID=48755068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310016323.5A Active CN103207839B (zh) 2012-01-17 2013-01-17 存储的高速缓存内的轨道清除的高速缓存管理方法和系统

Country Status (2)

Country Link
US (2) US9804971B2 (zh)
CN (1) CN103207839B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804971B2 (en) * 2012-01-17 2017-10-31 International Business Machines Corporation Cache management of track removal in a cache for storage
US9733991B2 (en) 2012-09-14 2017-08-15 International Business Machines Corporation Deferred re-MRU operations to reduce lock contention
US9547604B2 (en) * 2012-09-14 2017-01-17 International Business Machines Corporation Deferred RE-MRU operations to reduce lock contention
US9710398B2 (en) * 2014-11-18 2017-07-18 International Business Machines Corporation RE-MRU of metadata tracks to reduce lock contention
US10114551B2 (en) 2016-01-18 2018-10-30 International Business Machines Corporation Space reclamation in asynchronously mirrored space-efficient secondary volumes
US10146683B2 (en) * 2016-01-18 2018-12-04 International Business Machines Corporation Space reclamation in space-efficient secondary volumes
US10628331B2 (en) * 2016-06-01 2020-04-21 International Business Machines Corporation Demote scan processing to demote tracks from cache
US10782893B2 (en) * 2017-02-22 2020-09-22 International Business Machines Corporation Inhibiting tracks within a volume of a storage system
US10372624B2 (en) * 2017-08-18 2019-08-06 International Business Machines Corporation Destaging pinned retryable data in cache
US10831668B2 (en) 2018-08-30 2020-11-10 International Business Machines Corporation Detection and prevention of deadlock in a storage controller for cache access via a plurality of demote mechanisms
US10613981B2 (en) 2018-08-30 2020-04-07 International Business Machines Corporation Detection and prevention of deadlock in a storage controller for cache access
CN110888675B (zh) * 2018-09-11 2021-04-06 深圳云天励飞技术有限公司 硬件系统和电子设备
US10901916B1 (en) * 2019-08-16 2021-01-26 International Business Machines Corporation Managing indication of accessed tracks in cache to a most recently used end of a cache list based on accesses to different regions of the cache list
US11321344B2 (en) * 2019-09-20 2022-05-03 Sap Se Virtual database tables with updatable logical table pointers
CN110704833A (zh) * 2019-10-10 2020-01-17 北京字节跳动网络技术有限公司 数据权限配置方法、设备、电子设备及存储介质
CN111737295B (zh) * 2020-06-11 2023-02-03 上海达梦数据库有限公司 数据库游标查询方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
CN1967507A (zh) * 2005-11-18 2007-05-23 国际商业机器公司 数据存储控制器及用于管理其中的高速缓存数据的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353425A (en) 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US6073076A (en) 1998-03-27 2000-06-06 Navigation Technologies Corporation Memory management for navigation system
US6862663B1 (en) 2000-06-30 2005-03-01 Intel Corporation Cache having a prioritized replacement technique and method therefor
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
US6785771B2 (en) * 2001-12-04 2004-08-31 International Business Machines Corporation Method, system, and program for destaging data in cache
US6615318B2 (en) * 2002-01-22 2003-09-02 International Business Machines Corporation Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
US7577793B2 (en) * 2006-01-19 2009-08-18 International Business Machines Corporation Patrol snooping for higher level cache eviction candidate identification
JP4863814B2 (ja) * 2006-08-04 2012-01-25 株式会社日立製作所 記憶媒体グループの故障を抑えるストレージシステム
US20080040553A1 (en) * 2006-08-11 2008-02-14 Ash Kevin J Method and system for grouping tracks for destaging on raid arrays
US7669008B2 (en) * 2007-02-09 2010-02-23 International Business Machines Corporation Destage management of redundant data copies
JPWO2010058790A1 (ja) * 2008-11-21 2012-04-19 日本電気株式会社 コンテンツ配信装置、コンテンツ配信制御方法、コンテンツ配信制御プログラム、キャッシュ制御装置
US8458402B1 (en) * 2010-08-16 2013-06-04 Symantec Corporation Decision-making system and method for improving operating system level 2 cache performance
US8812785B2 (en) * 2011-05-23 2014-08-19 International Business Machines Corporation Managing track discard requests to include in discard track messages
US10684989B2 (en) * 2011-06-15 2020-06-16 Microsoft Technology Licensing, Llc Two-phase eviction process for file handle caches
US9075723B2 (en) * 2011-06-17 2015-07-07 International Business Machines Corporation Efficient discard scans
US9804971B2 (en) * 2012-01-17 2017-10-31 International Business Machines Corporation Cache management of track removal in a cache for storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
CN1967507A (zh) * 2005-11-18 2007-05-23 国际商业机器公司 数据存储控制器及用于管理其中的高速缓存数据的方法

Also Published As

Publication number Publication date
US9921973B2 (en) 2018-03-20
CN103207839A (zh) 2013-07-17
US9804971B2 (en) 2017-10-31
US20130185513A1 (en) 2013-07-18
US20130185514A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
CN103207839B (zh) 存储的高速缓存内的轨道清除的高速缓存管理方法和系统
JP7046669B2 (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
US9767032B2 (en) Systems and methods for cache endurance
US5551002A (en) System for controlling a write cache and merging adjacent data blocks for write operations
EP2476055B1 (en) Apparatus, system, and method for caching data on a solid-state storage device
US6785771B2 (en) Method, system, and program for destaging data in cache
CN104350477B (zh) 用于固态驱动装置(ssd)的优化的上下文移除
EP2939120B1 (en) Priority-based garbage collection for data storage systems
US6877065B2 (en) Advanced read cache management
US6192450B1 (en) Destage of data for write cache
JP4813843B2 (ja) ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
US6615318B2 (en) Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
US4466059A (en) Method and apparatus for limiting data occupancy in a cache
US20140082310A1 (en) Method and apparatus of storage tier and cache management
US9959054B1 (en) Log cleaning and tiering in a log-based data storage system
CN104145252A (zh) 两级高速缓存系统中的自适应高速缓存提升
US9772948B2 (en) Determining a criterion for movement of data from a primary cache to a secondary cache
US20100325352A1 (en) Hierarchically structured mass storage device and method
CN106662981A (zh) 存储设备、程序和信息处理方法
CN105339910B (zh) 在混合驱动器中的虚拟nand容量扩展
CN108139902A (zh) 用于提供混合模式来访问ssd驱动器的方法和装置
US20120166712A1 (en) Hot sheet upgrade facility
US9009396B2 (en) Physically addressed solid state disk employing magnetic random access memory (MRAM)
JP2014174992A (ja) システム・リブートを通じて改善されたキャッシュ・ランプアップを達成するためにキャッシュ・ストアを管理するためのシステム、方法、およびコンピュータ可読媒体
GB2357172A (en) Raid storage system with logicaly partitioned cache

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