CN103907100A - 用于次级高速缓冲存储器的填充的动态调整阈值 - Google Patents

用于次级高速缓冲存储器的填充的动态调整阈值 Download PDF

Info

Publication number
CN103907100A
CN103907100A CN201280053544.3A CN201280053544A CN103907100A CN 103907100 A CN103907100 A CN 103907100A CN 201280053544 A CN201280053544 A CN 201280053544A CN 103907100 A CN103907100 A CN 103907100A
Authority
CN
China
Prior art keywords
data
recently
tolerance
store cache
data store
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280053544.3A
Other languages
English (en)
Other versions
CN103907100B (zh
Inventor
L.M.格普塔
E.S.埃利弗塞里奥
I.科尔特西达斯
胡晓宇
R.普莱特卡
R.哈斯
S.布利尼克
M.T.本哈斯
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 CN103907100A publication Critical patent/CN103907100A/zh
Application granted granted Critical
Publication of CN103907100B publication Critical patent/CN103907100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions

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

用于次级高速缓冲存储器的填充的动态调整阈值
技术领域
本发明涉及计算机实现的数据存储高速缓冲存储器,更具体地涉及具有多个等级的高速缓冲存储器。
背景技术
计算机实现的数据存储系统典型地包括其中代表主机计算机系统存储数据的各种类型的数据存储。存储控制或控制器响应于读和写请求控制对数据存储介质和存储器的存取。存储控制可以根据安排为各种冗余、存取速度和安全等级的数据存储设备指引数据,数据存储设备诸如高速缓冲存储器、非易失性存储、RAID(独立盘的冗余阵列),JBOD(磁盘簇)等。
作为示例,国际商业机器公司()ESS(企业存储服务器)数据存储系统,诸如DS8000TM,具有称为“中央电子复合体”或“CECs”的计算机实体、高速缓冲存储器、非易失性存储等的冗余群集。
在数据存储系统中,高速缓冲存储器包括用于存储最近存取过、频繁存取的、或有可能在不久的将来存取的数据或指令的快闪存储器或存储设备。代替被提取或重新计算,高速缓冲存储器中存储的数据可以被迅速存取,从而节省时间和资源二者。
高速缓冲存储器可以提供在多个等级中。例如,高速缓冲存储器数据存储系统可以包括“第一”或“主要”高速缓冲存储器和“次级”高速缓冲存储器二者。典型地,第一高速缓冲存储器比次级高速缓冲存储器具有更快的存取并且每数据单元更昂贵,并且次级高速缓冲存储器比第一高速缓冲存储器具有更大的存储容量。例如,第一高速缓冲存储器包括动态随机存取存储器(DRAM),然而次级高速缓冲存储器包括快闪存储器固态驱动器(SSD),诸如“Flash_Cache”(国际商业机器公司注册商标)。当存取数据时,计算系统或设备可以首先在第一高速缓冲存储器中查找数据,并且如果数据不存在于此,则在次级高速缓冲存储器中查找数据。当写入数据时,计算系统或设备可以将数据写入到第一高速缓冲存储器。如果没有迅速地或频繁地存取第一高速缓冲存储器中的数据,则该数据可以降级到次级高速缓冲存储器。如果没有迅速地或频繁地从次级高速缓冲存储器存取数据,则其可以将其驱逐到更慢存取速度的数据存储,诸如RAID、JBOD等。
典型地,采用LRU(最近最少使用)算法来选择哪些数据降级到下一较低等级。
发明内容
提供方法、计算机实现的高速缓冲存储器数据存储系统和计算机程序产品用于控制进入到次级数据存储高速缓冲存储器的数据。在本上下文中的“次级”是在第一级数据存储高速缓冲存储器和其他数据存储之间的任何等级的数据存储高速缓冲存储器。因此,在三级数据存储高速缓冲存储器中,“次级”数据存储高速缓冲存储器可以是第二级或第三级。
在包括次级数据存储高速缓冲存储器的计算机实现的高速缓冲存储器数据存储系统的一个实施例中,执行以下步骤:
确定要插入到次级数据存储高速缓冲存储器的候选数据的热度度量;
根据次级数据存储高速缓冲存储器的当前状态的高速缓存效率调整热度度量阈值;
拒绝提供给次级数据存储高速缓冲存储器的、其热度度量小于阈值的候选数据;以及
容许提供给次级数据存储高速缓冲存储器的、其热度度量等于或大于热度度量阈值的候选数据进入次级数据存储高速缓冲存储器。
在进一步的实施例中,通过以下步骤确定高速缓存效率:
维持与最近最多插入到次级数据存储高速缓冲存储器的数据的命中(hit)有关的参考度量;
维持与最近最多从次级数据存储高速缓冲存储器驱逐的数据的命中有关的参考度量;以及
调整步骤包括根据最近最多插入的数据的参考度量和最近最多驱逐的数据的参考度量调整热度度量阈值。
在进一步的实施例中,调整步骤包括:
比较最近最多插入的数据的参考度量与最近最多驱逐的数据的参考度量;
如果最近最多插入的参考度量大于最近最多驱逐的参考度量,则递减该阈值;以及
如果最近最多插入的参考度量小于最近最多驱逐的参考度量,则递增该阈值。
在另一实施例中,其中高速缓冲存储器数据存储系统还包括第一数据存储高速缓冲存储器,热度度量基于数据存储在高速缓冲存储器数据存储系统的第一数据存储高速缓冲存储器中时数据的热度。
在进一步的实施例中,提供给次级数据存储高速缓冲存储器的数据包括从第一数据存储高速缓冲存储器降级的数据。
在另一实施例中,最近最多插入的数据列出在MRI列表中并且最近最多驱逐的数据列出在MRE列表中,并且参考度量包括计数对于数据在次级数据存储高速缓冲存储器中时MRI中列出的数据的、在次级数据存储高速缓冲存储器中的命中,以及计数对于数据已经从次级高速缓冲存储器中驱逐之后MRE中的数据的命中。
在进一步是实施例中,其中数据包括数据的页面,计数对于热度度量的命中在每页面的基础上确定,并且对于分别在MRI和MRE中列出的页面的全部确定最近最多插入和最近最多驱逐的参考度量。
在另一实施例中,调整步骤另外包括如果最近最多插入的参考度量和最近最多驱逐的参考度量基本上是相同的,则热度度量维持不变。
在进一步的实施例中,第一数据存储高速缓冲存储器包括提供数据给次级高速缓冲存储器的DRAM第一高速缓冲存储器,并且次级高速缓冲存储器包括快闪存储器。
为了更全面地理解本发明,应到参考结合附图的以下详细描述。
附图说明
图1是其中实现本发明的示例性网络和计算机实现的存储服务器系统的框图;
图2是图1的计算机实现的高速缓冲存储器数据存储系统的图解示意;
图3是图1和2的系统的各种状态的图解示意;以及
图4是描绘操作图1和2的系统的示例性方法的流程图。
具体实施方式
在以下参考附图的描述中以优选实施例描述本发明,其中同样的数字代表相同或相似的元件。虽然按照实现本发明目的的最佳方式描述本发明,但是本领域的技术人员将认识到鉴于这些教导不脱离本发明的范围可以完成多种变化。
参考图1,用计算机实现的数据存储系统110图示基于计算机的网络架构100的示例,计算机实现的数据存储系统110可以实现本文讨论的计算机实现的高速缓冲存储器数据存储系统和方法。仅以示例的方式呈现架构100,不意图对其限制。本文公开的计算机实现的高速缓冲存储器数据存储系统和方法可以应用于广泛的多种不同计算机、服务器、数据存储系统和网络架构。
示例性的网络架构100可以包括耦接到网络(诸如,存储域网(SAN)108)的一个或多个主机计算机系统102。网络108可以包括使用任何适当的协议的任何合当的专用或公用互连。
存储系统110包括存储控制200,其配置为向和从开关202和数据存储203与204传输数据并且控制开关202和数据存储203与204的操作。例如,数据存储可以包括经由开关202可存取的固态驱动器阵列和硬盘驱动器。可替代或附加地,数据存储203和204可以包括单独的设备或者可以包括具有许多设备的数据存储库。主机系统102的全部或任何可以指引和利用存储系统110,并且利用本文的存储控制200和数据高速缓存系统。
高速缓存系统可以实现在存储控制200中,并且还可以可应用于其他存储系统。如所示,存储控制200包括一个或多个服务器206。控制200还可以包括主机适配器208和设备适配器210以提供将控制200分别连接到主机系统102和数据存储203与204的接口。多个服务器206a、206b可以提供冗余以确保数据总是可用于连接的主机102。因此,如果一个服务器206a故障,其他服务器206b可以保持运作以确保数据传输能够在主机系统102和数据存储203与204之间继续。该过程可以称为“故障转移(failover)”。
具有类似于图1中图示的架构的架构的存储系统110的一个示例是国际商业机器公司(
Figure BDA0000498954660000041
)的DS8000TM企业存储服务器。DS8000TM是提供数据存储的高性能、高容量存储控制,其设计为支持数据存储的连续操作和实现数据存储的虚拟化,并且本文仅通过实施例示例的方式呈现,不意图对其限制。因此,本文讨论的高速缓存系统不限于DS8000TM,但是可以在任何相当的具有高速缓存的存储控制200中实现,而不管制造商、产品名称或者与系统110相关联的组件或组件名称。
在图1的示例中,每个服务器206可以包括一个或多个计算机处理器212和存储器214。计算机处理器212可以包括内部处理和存储能力,以存储运行在处理器上并且和其他的事物用于存取数据存储203和204中的数据的软件模块。
在一个实施例中,存储器214可以包括高速缓冲存储器218。例如每当主机102在读取操作中从存储系统110存取数据时,执行该操作(例如,从存储204读取数据)的服务器206可以在可能再次需要该数据的情况下,将数据保存在其高速缓冲存储器218中。如果主机102再次存取该数据,则服务器206可以代替从存储204提取该数据而从高速缓冲存储器218提供该数据,节省了时间和资源二者。类似地,当主机系统102执行写入时,服务器206可以在高速缓冲存储器218中进行存储,或者主机系统102可以指引在高速缓冲存储器218中存储数据,以在稍后降级到存储204。当在高速缓冲存储器218中存储写入时,该写入也可以存储在相对的服务器206的非易失性存储器(NVS)220中,以便在第一服务器206故障的情况下可以通过相对的服务器206恢复该写入。
参考图1和2,存储系统110可以包括诸如硬盘驱动器的数据存储204和诸如基于快闪存储器的非易失性存储器的固态驱动器(SSD)的数据存储203二者。SSD驱动器或其他类型的固态存储器的输入/输出(I/O)性能通常远快于硬盘驱动器的I/O性能。因为较高的I/O性能,在某些实施例中SSD203可以用于在用作第一高速缓冲存储器的高速缓冲存储器218和硬盘驱动器204之间提供大次级高速缓冲存储器300。大次级高速缓冲存储器300的使用可以显著地提高存储系统110的I/O性能。
如果读取请求通过服务器206接收,使用次级高速缓冲存储器300,该服务器最初可以在第一高速缓冲存储器218中查找数据,如果数据不存在,在驻留在SSD203中的次级高速缓冲存储器300中查找数据。如果在任一高速缓冲存储器中数据均不可用,服务器206可以从硬盘驱动器204检索数据。类似地,当写入或修改数据时,服务器206最初可以将数据或修改的数据写入第一高速缓冲存储器218。数据最后可以降级到次级高速缓冲存储器300以在第一高速缓冲存储器218中腾出空间。数据最终可以降级到盘驱动器204以在次级高速缓冲存储器300中腾出可用空间。
当从硬盘驱动器204读取数据时,在数据将再次被存取的情况下数据也可以存储在第一高速缓冲存储器218中。
作为示例,次级高速缓冲存储器300可以使其大小提供存储系统110的总数据存储容量的约百分之一到百分之二十。因此,对于包括约4千万兆字节的数据存储(来自硬盘驱动器204和SSD203二者)的存储系统110,该存储空间的约2百万兆字节可以用作次级高速缓冲存储器300。第一高速缓冲存储器218典型地是次级高速缓冲存储器300的大小的小百分比。作为示例性实施例,用于第一高速缓冲存储器218和次级高速缓冲存储器300二者的存储空间可以安排在各页面中以提供操作的方便。
参考图2、3和4,在一个实施例中,应用动态调整的阈值以提供次级高速缓冲存储器300的选择填充。
在其中采用阈值过滤从第一高速缓冲存储器218降级的数据的实施例中,通过仅在第一高速缓冲存储器218中高速缓存的页面和次级高速缓冲存储器300的小部分上维持统计数据,实现阈值的调整。
通过控制200维持的统计数据包括作为要降级到次级高速缓冲存储器300的候选的第一高速缓冲存储器218中的页面的热度度量310。
热度度量的一个示例是自从数据页面已经位于第一高速缓冲存储器218中已经存取数据页面的次数的计数(“命中”)。由于大多数高速缓冲存储器基于最近最少使用(LRU)算法(其中的许多类型对本领域的技术人员是已知的)确定哪些数据要降级,所以收集统计数据的有效方式是跟踪和维持第一高速缓冲存储器218中的所有页面的热度度量。例如,命中的数量可以以对于第一高速缓冲存储器218中的每个页面的元数据条目中的计数器的形式实现。
热度度量的其他示例包括在页面已经位于第一高速缓冲存储器218中时超过限定时间段的页面的“命中”的数量,以及页面的“命中”与第一高速缓冲存储器218中的所有页面的“命中”的平均值相比的比率。
在一个实施例中,热度度量和候选数据仅仅是例如在读取操作中已经从存储204复制的数据。
在图3中,可调整的阈值T是热度度量的形式。根据次级数据存储高速缓冲存储器300的当前状态的高速缓存效率调整热度度量阈值。图1的控制200比较要降级的候选页面320的图2的热度度量310与热度度量阈值T。如果候选数据的热度度量310小于阈值T,则控制拒绝330提供给次级数据存储高速缓冲存储器的候选数据。在一个示例中,拒绝的数据330被丢弃340。丢弃意味着如果数据已经被从图1的存储204复制,则对数据的引用从存储218移除,并且第一存储218的元数据(诸如索引)以及原始拷贝维持在存储204中。
替代地,如果候选数据320包括最初已经被写入到第一高速缓冲存储器218的数据,则丢弃意味着数据写入到图1的数据存储204。
仍然参考图3,图1的控制200容许350提供给次级数据存储高速缓冲存储器300的候选数据320进入次级数据存储高速缓冲存储器300,提供给次级数据存储高速缓冲存储器300的候选数据320的图2的热度度量310等于或大于热度度量阈值T。
参考图2和3,在一个实施例中,对通过控制200维持的热度度量阈值T的高速缓存效率调整,基于维持与最近最多插入(MRI)到次级数据存储高速缓冲存储器300的数据365的命中有关的参考度量360、以及维持与最近最多从次级数据存储高速缓冲存储器300驱逐(MRE)的数据375的命中有关的参考度量370。在一个实施例中,MRI和MRE参考度量中采用的数据页面的数量相等。作为一个示例,最近最多插入的数据365列出在MRI列表380中,并且最近最多驱逐的数据列出在MRE列表390中,以及参考度量包括计数对于数据在次级数据存储高速缓冲存储器300中时MRI中列出的数据的、在次级数据存储高速缓冲存储器中的命中,以及计数对于数据已经从次级高速缓冲存储器中驱逐之后MRE中列出的数据的命中。列表380、390可以是使用先入先出取代策略的小幻影高速缓冲存储器的形式。可替代地,可以通过在每个页面移动到次级高速缓冲存储器、在高速缓冲存储器内移动和移动出高速缓冲存储器时增加和删除每个页面标识来确定列表。在每个页面参考处控制更新两个列表,记住MRI列表“r(MRI)”和MRE列表“r(MRE)”中出现的命中的数量。
在进一步的实施例中,其中数据包括数据页面,计数对于热度度量310的命中在每页面的基础上确定,在一个示例中对于页面在第一高速缓冲存储器218中时该页面的命中的数量。另一方面,对于分别在MRI365和MRE375中列出的所有页面确定最近最多插入和最近最多驱逐的参考度量360、370。
在一个实施例中,图1的控制200将最近最多插入的数据的参考度量360和最近最多驱逐的数据的参考度量370相比较;并且如果最近最多插入的参考度量360大于最近最多驱逐的参考度量370,则递减阈值T;并且如果最近最多插入的参考度量360小于最近最多驱逐的参考度量370,则递减阈值。
参考图2、3和4,在一个实施例中,在步骤400,图1的控制200从第一高速缓冲存储器218降级页面p。
在步骤410,可以在与步骤400无关的时间帧中出现,比较次级高速缓冲存储器300的最近最多插入的数据365的参考度量与最近最多驱逐的数据375的参考度量370。
在一个实施例中,在稳定状态,对于容许进入次级高速缓冲存储器300的每个页面,一个页面已经被驱逐。也就是说,每个容许暗示一个页面取代。因此,在每个第一高速缓冲存储器降级,控制将评估n个最新次级高速缓冲存储器容许决定:如果这些是正确的(即,导致增加的命中比率),则阈值T将递减。具体地,如果最近最多插入的参考度量360大于415最近最多驱逐的参考度量370,则阈值T将递减420。也就是说,之前的阈值T0以一个测量单位递减从而变为新阈值T1。在一个示例中,对于T1的调整允许具有一个较小命中的页面被容许进入高速缓冲存储器。较低阈值将导致更积极的次级高速缓冲存储器填充。
另一方面,如果n个最新次级高速缓冲存储器容许决定是错误的(即,导致减小的命中比率),则阈值T将增加。具体地,如果最近最多插入的参考度量360小于425最近最多驱逐的参考度量370,则阈值T将增加430。也就是说,之前的阈值T0以一个测量单位增加从而变为新阈值T1。在一个示例中,对于T1的调整允许具有一个较大数量的命中的页面被容许进入高速缓冲存储器。较高阈值将导致丢弃340更多进入页面。
在一个实施例中,可以维持可替代的稳定状态,其中如果最近最多插入的参考度量360和最近最多驱逐的参考度量370基本上是相同的440,则保持热度度量阈值T不变450。
作为替代,在特定的时间段可以进行阈值T的调整。
结果,如果r(MRI)>r(MRE),其意味着新容许的页面比驱逐的页面更热并且阈值T应当更低。另一方面,如果r(MRI)<r(MRE),其意味着驱逐的页面对于主机系统102比新容许进入的页面更有价值并且不应当由新页面取代;因此,填充等级应当更低并且容许阈值T应当更高。
在一个实施例中,在步骤460,降级页面320的热度“h(p)”与新阈值T1进行比较。如果候选数据的热度度量310小于阈值T,则控制拒绝465、330提供给次级数据存储高速缓冲存储器的候选数据320,例如丢弃340拒绝的数据。图1的控制200容许470、350提供给次级数据存储高速缓冲存储器300的候选数据320进入次级数据存储高速缓冲存储器300,提供给次级数据存储高速缓冲存储器300的候选数据320的热度度量310等于或大于热度度量阈值T。
作为对阈值T的调整的示例,如果在最后的1000次存取期间,已经存在MRE列表中的50个命中(在其页面的任意上)和在MRI列表中的仅10个命中(在其页面的任意上),这意味着较大高速缓存价值的页面正在被从次级高速缓冲存储器驱逐以插入新的较少高速缓存价值的页面,因此控制应当对次级高速缓冲存储器300降低容许率(提高阈值T)。相反,在最后的1000次存取期间,已经存在MRI列表中的50个命中(在其页面的任意上)和在MRE列表中的仅10个命中(在其页面的任意上),这意味着较多高速缓存价值的新页面正在被插入到次级高速缓冲存储器并且较少高速缓存价值的页面正在被驱逐,因此控制应当对次级高速缓冲存储器300增大容许率(降低阈值T)以允许容许具有更多高速缓存价值的更多页面的进入。
本领域的技术人员将认识到本文公开的本发明的实施例,包括用于控制图1和2的系统100的次级高速缓冲存储器300的填充的计算机实现的控制200、以及在此提供的功能,可以实施为系统、方法或计算机程序产品。因此,本方面的实施例可以采用以下形式,即完全的硬件所述、完全的软件实施例(包括固件、驻留软件、微代码等)、或者硬件和软件结合,诸如本文一般可以称为“电路”、“模块”或“系统”的组合软件和硬件方面的实施例。此外,本发明的实施还可以采用在一个或多个非瞬时计算机可读介质中实施的计算机程序产品的形式,该计算机可读介质具有实现在其上计算机可读的程序代码。
可以采用一个或多个非瞬时计算机可读的介质的任意组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上实现的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的组合来编写用于执行本发明的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如”C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。将理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些指令通过计算机或其它可编程数据处理装置的处理器执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机、其它可编程数据处理装置或其他设备以特定方式工作的计算机可读介质中,这样存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
本领域的技术人员将理解可以关于以上讨论方法做出改变,包括对步骤的排序的改变。此外,本领域的技术人员将理解可以采用与本文图示的相比不同的具体组件安排。
虽然已经详细图示了本发明的优选实施例,但是不脱离如权利要求阐述的本发明的范围,对本领域的技术人员而言可以出现对这些实施例的修改和改装将是显然的。

Claims (25)

1.一种用于向计算机实现的高速缓冲存储器数据存储系统的次级数据存储高速缓冲存储器中填充数据的方法,包括:
确定要插入到所述次级数据存储高速缓冲存储器的候选数据的热度度量;
根据所述次级数据存储高速缓冲存储器的当前状态的高速缓存效率调整热度度量阈值;
拒绝提供给所述次级数据存储高速缓冲存储器的、其热度度量小于所述阈值的候选数据;以及
容许提供给所述次级数据存储高速缓冲存储器的、其热度度量等于或大于所述热度度量阈值的候选数据进入所述次级数据存储高速缓冲存储器。
2.根据权利要求1所述的方法,还包括:
维持与最近最多插入到所述次级数据存储高速缓冲存储器的数据的命中有关的参考度量;
维持与最近最多从所述次级数据存储高速缓冲存储器驱逐的数据的命中有关的参考度量;以及
所述调整步骤包括根据所述最近最多插入的数据的所述参考度量和所述最近最多驱逐的数据的所述参考度量调整所述热度度量阈值。
3.根据权利要求2所述的方法,其中所述调整步骤包括:
比较所述最近最多插入的数据的所述参考度量与所述最近最多驱逐的数据的所述参考度量;
如果所述最近最多插入的参考度量大于所述最近最多驱逐的参考度量,则递减所述阈值;以及
如果所述最近最多插入的参考度量小于所述最近最多驱逐的参考度量,则递增所述阈值。
4.根据权利要求3所述的方法,其中所述高速缓冲存储器数据存储系统还包括第一数据存储高速缓冲存储器,其中所述热度度量基于所述数据存储在所述高速缓冲存储器数据存储系统的所述第一数据存储高速缓冲存储器中时所述数据的热度。
5.根据权利要求4所述的方法,其中提供给所述次级数据存储高速缓冲存储器的所述数据包括从所述第一数据存储高速缓冲存储器降级的数据。
6.根据权利要求5所述的方法,其中所述最近最多插入的数据列出在MRI列表中并且所述最近最多驱逐的数据列出在MRE列表中,并且所述参考度量包括计数对于所述数据在所述次级数据存储高速缓冲存储器中时所述MRI中列出的所述数据的、在所述次级数据存储高速缓冲存储器中的命中,以及计数对于所述数据已经从所述次级高速缓冲存储器中驱逐之后所述MRE中列出的所述数据的命中。
7.根据权利要求6所述的方法,其中所述数据包括数据的页面,计数对于所述热度度量的命中在每页面的基础上确定,并且对于分别在所述MRI和所述MRE中列出的所述页面的全部确定所述最近最多插入和所述最近最多驱逐的参考度量。
8.根据权利要求3所述的方法,其中所述调整步骤还包括如果所述最近最多插入的参考度量和所述最近最多驱逐的参考度量基本上是相同的,则所述热度度量维持不变。
9.一种计算机实现的高速缓冲存储器数据存储系统,包括:
次级数据存储高速缓冲存储器;以及
用于将数据填充到所述次级数据存储高速缓冲存储器的控制,所述控制:
确定要插入到所述次级数据存储高速缓冲存储器的候选数据的热度度量;
根据所述次级数据存储高速缓冲存储器的当前状态的高速缓存效率调整热度度量阈值;
拒绝提供给所述次级数据存储高速缓冲存储器的、其热度度量小于所述阈值的候选数据;以及
容许提供给所述次级数据存储高速缓冲存储器的、其热度度量等于或大于所述热度度量阈值的候选数据进入所述次级数据存储高速缓冲存储器。
10.根据权利要求9所述的计算机实现的高速缓冲存储器数据存储系统,其中所述控制还:
维持与最近最多插入到所述次级数据存储高速缓冲存储器的数据的命中有关的参考度量;
维持与最近最多从所述次级数据存储高速缓冲存储器驱逐的数据的命中有关的参考度量;以及
在所述调整步骤中,根据所述最近最多插入的数据的所述参考度量和所述最近最多驱逐的数据的所述参考度量调整所述热度度量阈值。
11.根据权利要求10所述的计算机实现的高速缓冲存储器数据存储系统,在所述调整步骤中:
比较所述最近最多插入的数据的所述参考度量与所述最近最多驱逐的数据的所述参考度量;
如果所述最近最多插入的参考度量大于所述最近最多驱逐的参考度量,则递减所述阈值;以及
如果所述最近最多插入的参考度量小于所述最近最多驱逐的参考度量,则递增所述阈值。
12.根据权利要求11所述的计算机实现的高速缓冲存储器数据存储系统,还包括第一数据存储高速缓冲存储器;以及
其中所述热度度量基于所述数据存储在所述高速缓冲存储器数据存储系统的所述第一数据存储高速缓冲存储器中时所述数据的热度。
13.根据权利要求11所述的计算机实现的高速缓冲存储器数据存储系统,其中提供给所述次级数据存储高速缓冲存储器的所述数据包括从所述第一数据存储高速缓冲存储器降级的数据。
14.根据权利要求13所述的计算机实现的高速缓冲存储器数据存储系统,其中所述控制还在所述维持参考步骤中:
将所述最近最多插入的数据列出在MRI列表中并且将所述最近最多驱逐的数据列出在MRE列表中,并且所述参考度量包括计数对于所述数据在所述次级数据存储高速缓冲存储器中时所述MRI中列出的所述数据的、在所述次级数据存储高速缓冲存储器中的命中,以及计数对于所述数据已经从所述次级高速缓冲存储器中驱逐之后所述MRE中列出的所述数据的命中。
15.根据权利要求14所述的计算机实现的高速缓冲存储器数据存储系统,其中所述数据包括数据的页面,计数对于所述热度度量的命中在每页面的基础上确定,并且对于分别在所述MRI和所述MRE中列出的所述页面的全部确定所述最近最多插入和所述最近最多驱逐的参考度量。
16.根据权利要求11所述的计算机实现的高速缓冲存储器数据存储系统,其中所述控制调整步骤还包括如果所述最近最多插入的参考度量和所述最近最多驱逐的参考度量基本上是相同的,则所述热度度量维持不变。
17.根据权利要求11所述的计算机实现的高速缓冲存储器数据存储系统,其中所述第一数据存储高速缓冲存储器包括提供数据给所述次级高速缓冲存储器的DRAM第一高速缓冲存储器,并且所述次级高速缓冲存储器包括快闪存储器。
18.一种用于向计算机实现的高速缓冲存储器数据存储系统的次级数据存储高速缓冲存储器中填充数据的计算机程序产品,所述计算机程序产品包括具有其中实现非瞬时计算机可用程序代码的计算机可用存储介质,所述计算机程序产品包括:
确定要插入到所述次级数据存储高速缓冲存储器的候选数据的热度度量的计算机可用程序代码;
根据所述次级数据存储高速缓冲存储器的当前状态的高速缓存效率调整热度度量阈值的计算机可用程序代码;
拒绝提供给所述次级数据存储高速缓冲存储器的、其热度度量小于所述阈值的候选数据的计算机可用程序代码;以及
容许提供给所述次级数据存储高速缓冲存储器的、其热度度量等于或大于所述热度度量阈值的候选数据进入所述次级数据存储高速缓冲存储器的计算机可用程序代码。
19.根据权利要求18所述的计算机程序产品,还包括计算机可用程序代码用以:
维持与最近最多插入到所述次级数据存储高速缓冲存储器的数据的命中有关的参考度量;
维持与最近最多从所述次级数据存储高速缓冲存储器驱逐的数据的命中有关的参考度量;以及
在所述调整步骤中,根据所述最近最多插入的数据的所述参考度量和所述最近最多驱逐的数据的所述参考度量调整所述热度度量阈值。
20.根据权利要求19所述的计算机程序产品,还包括计算机可用程序代码用以在所述调整步骤中:
比较所述最近最多插入的数据的所述参考度量与所述最近最多驱逐的数据的所述参考度量;
如果所述最近最多插入的参考度量大于所述最近最多驱逐的参考度量,则递减所述阈值;以及
如果所述最近最多插入的参考度量小于所述最近最多驱逐的参考度量,则递增所述阈值。
21.根据权利要求20所述的计算机程序产品,其中所述高速缓冲存储器数据存储系统还包括第一数据存储高速缓冲存储器,并且其中所述热度度量基于所述数据存储在所述高速缓冲存储器数据存储系统的所述第一数据存储高速缓冲存储器中时所述数据的热度。
22.根据权利要求21所述的计算机程序产品,其中提供给所述次级数据存储高速缓冲存储器的所述数据包括从所述第一数据存储高速缓冲存储器降级的数据。
23.根据权利要求22所述的计算机程序产品,其中所述最近最多插入的数据列出在MRI列表中并且所述最近最多驱逐的数据列出在MRE列表中,并且所述参考度量包括计数对于所述数据在所述次级数据存储高速缓冲存储器中时所述MRI中列出的所述数据的、在所述次级数据存储高速缓冲存储器中的命中,以及计数对于所述数据已经从所述次级高速缓冲存储器中驱逐之后所述MRE中列出的所述数据的命中。
24.根据权利要求23所述的计算机程序产品,其中所述数据包括数据的页面,计数对于所述热度度量的命中在每页面的基础上确定,并且对于分别在所述MRI和所述MRE中列出的所述页面的全部确定所述最近最多插入和所述最近最多驱逐的参考度量。
25.根据权利要求20所述的计算机程序产品,其中所述计算机程可用序代码,在所述调整步骤中,如果所述最近最多插入的参考度量和所述最近最多驱逐的参考度量基本上是相同的,则所述热度度量维持不变。
CN201280053544.3A 2011-10-31 2012-10-19 高速缓冲存储器数据存储系统及向其存储填充数据的方法 Active CN103907100B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/285,740 2011-10-31
US13/285,740 US8972661B2 (en) 2011-10-31 2011-10-31 Dynamically adjusted threshold for population of secondary cache
PCT/IB2012/055730 WO2013064935A1 (en) 2011-10-31 2012-10-19 Dynamically adjusted threshold for population of secondary cache

Publications (2)

Publication Number Publication Date
CN103907100A true CN103907100A (zh) 2014-07-02
CN103907100B CN103907100B (zh) 2016-05-25

Family

ID=48173646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053544.3A Active CN103907100B (zh) 2011-10-31 2012-10-19 高速缓冲存储器数据存储系统及向其存储填充数据的方法

Country Status (7)

Country Link
US (2) US8972661B2 (zh)
JP (1) JP5908100B2 (zh)
KR (1) KR20140082639A (zh)
CN (1) CN103907100B (zh)
DE (1) DE112012004209T5 (zh)
GB (1) GB2513741B (zh)
WO (1) WO2013064935A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493024A (zh) * 2014-11-28 2016-04-13 华为技术有限公司 一种数据阈值预测方法与相关装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158706B2 (en) 2011-10-31 2015-10-13 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US10152423B2 (en) * 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
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
GB2514571A (en) * 2013-05-29 2014-12-03 Ibm Cache allocation in a computerized system
US9501419B2 (en) * 2014-10-08 2016-11-22 HGST Netherlands B.V. Apparatus, systems, and methods for providing a memory efficient cache
CN104834609B (zh) * 2015-05-31 2017-12-22 上海交通大学 基于历史升降级频率的多级缓存方法
WO2017019129A1 (en) * 2015-07-24 2017-02-02 Hewlett Packard Enterprise Development Lp Computing system cache
US10114753B2 (en) 2015-08-21 2018-10-30 International Business Machines Corporation Using cache lists for multiple processors to cache and demote tracks in a storage system
US10067884B2 (en) 2015-08-21 2018-09-04 International Business Machines Corporation Distributing a plurality of tracks to add to cache to lists assigned to processors
US9952904B2 (en) 2015-08-21 2018-04-24 International Business Machines Corporation Distributing tracks to add to cache to processor cache lists based on counts of processor access requests to the cache
US10108552B2 (en) * 2015-08-21 2018-10-23 International Business Machines Corporation Using cache lists for processors to determine tracks to demote from a cache
US9824030B2 (en) 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US9811474B2 (en) * 2015-10-30 2017-11-07 International Business Machines Corporation Determining cache performance using a ghost cache list indicating tracks demoted from a cache list of tracks in a cache
US10282304B2 (en) * 2016-04-27 2019-05-07 Vmware, Inc. Caching using an admission control cache layer
JP6711121B2 (ja) * 2016-05-10 2020-06-17 富士通株式会社 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
US10552327B2 (en) 2016-08-23 2020-02-04 Apple Inc. Automatic cache partitioning
US10204045B2 (en) 2016-08-30 2019-02-12 International Business Machines Corporation Data file handling in a volatile memory
US10540295B2 (en) 2017-06-21 2020-01-21 International Business Machines Corporation Processing cache miss rates to determine memory space to add to an active cache to reduce a cache miss rate for the active cache
US11113207B2 (en) * 2018-12-26 2021-09-07 Samsung Electronics Co., Ltd. Bypass predictor for an exclusive last-level cache
US11609858B2 (en) * 2018-12-26 2023-03-21 Samsung Electronics Co., Ltd. Bypass predictor for an exclusive last-level cache
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
CN113766650B (zh) * 2021-08-26 2022-06-28 武汉天地同宽科技有限公司 基于动态平衡的互联网资源获取方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214321A1 (en) * 2006-03-13 2007-09-13 Shannon Christopher J Synchronizing recency information in an inclusive cache hierarchy
US20080059707A1 (en) * 2006-08-31 2008-03-06 Srihari Makineni Selective storage of data in levels of a cache memory
CN101192198A (zh) * 2006-12-01 2008-06-04 国际商业机器公司 在多处理器系统中高速缓存数据的方法和多处理器系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293608A (en) 1991-04-19 1994-03-08 Legent Corporation System and method for optimizing cache memory utilization by selectively inhibiting loading of data
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US6507893B2 (en) * 2001-01-26 2003-01-14 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
JP2004355365A (ja) 2003-05-29 2004-12-16 Fujitsu Ltd キャッシュ管理装置およびキャッシュメモリ管理方法
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US20080282059A1 (en) 2007-05-09 2008-11-13 Kattamuri Ekanadham Method and apparatus for determining membership in a set of items in a computer system
US8024513B2 (en) 2007-12-04 2011-09-20 International Business Machines Corporation Method and system for implementing dynamic refresh protocols for DRAM based cache
US8161242B2 (en) * 2008-08-01 2012-04-17 International Business Machines Corporation Adaptive spill-receive mechanism for lateral caches
US8397016B2 (en) 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US8195901B2 (en) 2009-02-05 2012-06-05 International Business Machines Corporation Firehose dump of SRAM write cache data to non-volatile memory using a supercap
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8176220B2 (en) 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8255627B2 (en) 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
WO2011074040A1 (en) * 2009-12-17 2011-06-23 Hitachi,Ltd. Storage apparatus and its control method
JP2011150684A (ja) 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
JP5434738B2 (ja) 2010-03-26 2014-03-05 日本電気株式会社 ディスク装置
US20120124291A1 (en) * 2010-11-16 2012-05-17 International Business Machines Corporation Secondary Cache Memory With A Counter For Determining Whether to Replace Cached Data
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US10152423B2 (en) * 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214321A1 (en) * 2006-03-13 2007-09-13 Shannon Christopher J Synchronizing recency information in an inclusive cache hierarchy
US20080059707A1 (en) * 2006-08-31 2008-03-06 Srihari Makineni Selective storage of data in levels of a cache memory
CN101192198A (zh) * 2006-12-01 2008-06-04 国际商业机器公司 在多处理器系统中高速缓存数据的方法和多处理器系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493024A (zh) * 2014-11-28 2016-04-13 华为技术有限公司 一种数据阈值预测方法与相关装置

Also Published As

Publication number Publication date
US20130111131A1 (en) 2013-05-02
US20130111133A1 (en) 2013-05-02
US8972662B2 (en) 2015-03-03
GB201409211D0 (en) 2014-07-09
JP2014535106A (ja) 2014-12-25
CN103907100B (zh) 2016-05-25
DE112012004209T5 (de) 2014-09-11
WO2013064935A1 (en) 2013-05-10
US8972661B2 (en) 2015-03-03
KR20140082639A (ko) 2014-07-02
GB2513741A (en) 2014-11-05
JP5908100B2 (ja) 2016-04-26
GB2513741B (en) 2016-11-02

Similar Documents

Publication Publication Date Title
CN103907100A (zh) 用于次级高速缓冲存储器的填充的动态调整阈值
US10042779B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
US9135173B2 (en) Thinly provisioned flash cache with shared storage pool
US9037791B2 (en) Tiered caching and migration in differing granularities
US8549225B2 (en) Secondary cache for write accumulation and coalescing
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US8095738B2 (en) Differential caching mechanism based on media I/O speed
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
US20130297884A1 (en) Enhancing data processing performance by cache management of fingerprint index
US10620850B1 (en) Caching techniques duplicating dirty data in secondary 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