CN104025059A - 用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和系统 - Google Patents

用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和系统 Download PDF

Info

Publication number
CN104025059A
CN104025059A CN201280053550.9A CN201280053550A CN104025059A CN 104025059 A CN104025059 A CN 104025059A CN 201280053550 A CN201280053550 A CN 201280053550A CN 104025059 A CN104025059 A CN 104025059A
Authority
CN
China
Prior art keywords
data
data storage
tolerance
storage memory
effectiveness
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
CN201280053550.9A
Other languages
English (en)
Other versions
CN104025059B (zh
Inventor
L.M.格普塔
E.S.埃利弗塞里奥
I.科尔特西达斯
胡晓宇
R.普莱特卡
R.哈斯
M.T.本哈斯
M.J.卡洛斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104025059A publication Critical patent/CN104025059A/zh
Application granted granted Critical
Publication of CN104025059B publication Critical patent/CN104025059B/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
    • 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/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

通过以下步骤收回数据存储存储器系统的数据存储存储器的空间:确定数据存储存储器中存储的数据的热度度量;确定与数据存储存储器中的数据的重新定位有关的重新定位度量;确定对于数据使热度度量与重新定位度量相关的数据的效用度量;以及使得其效用度量未达到效用度量阈值的数据可用于空间收回。因此,可以另外地驱逐或降低但是符合或超过效用度量阈值的数据被免除空间收回,并且替代地维持在数据存储存储器中。

Description

用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和系统
技术领域
本发明涉及计算机实现的数据存储存储器,更具体地涉及存储器空间收回。
背景技术
计算机实现的数据存储系统典型地包括其中代表主机计算机系统存储数据的各种类型的数据存储。存储控制响应于读和写请求控制对数据存储介质和存储器的存取。存储控制可以根据安排为各种冗余、存取速度和安全等级的数据存储存储器和设备指引数据,数据存储设备诸如高速缓冲存储器、非易失性存储、RAID(独立盘的冗余阵列),JBOD(磁盘簇)等。
作为示例,国际商业机器公司ESS(企业存储服务器),诸如DS8000TM,具有称为“中央电子复合体”或“CECs”的计算机实体、高速缓冲存储器、非易失性存储等的冗余群集。
在数据存储系统中,可以采用快速存储器作为用于存储最近存取过、频繁存取的、或有可能在不久的将来存取的数据或指令的高速缓冲存储器。代替被提取或重新计算,高速缓冲存储器中存储的数据可以被迅速存取,从而节省时间和资源二者。
高速缓冲存储器可以提供在多个等级中。例如,高速缓冲存储器数据存储系统可以包括“第一”或“主要”高速缓冲存储器和“次级”高速缓冲存储器二者。典型地,第一高速缓冲存储器比次级高速缓冲存储器具有更快的存取并且比次级高速缓冲存储器每数据单元更昂贵,并且次级高速缓冲存储器比第一高速缓冲存储器具有更大的存储容量。例如,第一高速缓冲存储器包括DRAM(“动态随机存取存储器”),然而次级高速缓冲存储器包括快闪存储器固态驱动器(SSD),诸如“Flash_Cache”(国际商业机器公司注册商标)。当存取数据时,计算系统或设备可以首先在第一高速缓冲存储器中查找数据,并且如果数据不存在于此,则在次级高速缓冲存储器中查找数据。当在任一存储器中数据不可用时,典型地从包括较慢存取速度的数据存储的主要数据存储(诸如,RAID、JBOD等)对数据进行存取。当读取数据时,典型地数据保留在主要数据存储中并且复制到第一高速缓冲存储器和/或次级高速缓冲存储器。如果第一高速缓冲存储器中的读取数据没有被迅速或频繁地存取,则其可以被降级到次级高速缓冲存储器或被驱逐。如果次级高速缓冲存储器中的读取数据没有被迅速或频繁地存取,则其可以被驱逐。当写入数据时,计算系统或设备可以将数据写入到第一高速缓冲存储器。如果没有迅速地或频繁地存取第一高速缓冲存储器中的写入数据,则该数据可以被降级到次级高速缓冲存储器。如果没有迅速地或频繁地从次级高速缓冲存储器存取数据,则可以将其降级到更慢存取速度的数据存储,诸如RAID、JBOD等。可替代地,写入数据在被数据存储系统接收之后可以尽快写入到主要数据存储。
典型地,采用LRU(最近最少使用)算法来将数据降级到下一较低等级或从第一高速缓冲存储器或次级高速缓冲存储器驱逐数据。
在一些存储器中,诸如次级高速缓冲存储器,数据以日志结构方式存储为(顺序地写入,要求在逻辑的基础上确定数据存储在哪的日志)大数据范围的页面。在LRU算法下查看数据页面,并且无效最近最少使用的页面。为了收回空间,系统将选择具有最多无效的页面的日志结构范围(log-structuredextent,LSE),并且压缩有效页面,将其重新定位在新LSE中,留下一个或多个空闲LSE。重新定位招致大量的I/O(输入/输出)重新定位操作,因为许多LSE需要被读取并且一个或多个LSE在收回过程的每个迭代处被写入。
发明内容
提供方法、计算机实现的数据存储存储器系统和计算机程序产品用于收回数据存储存储器系统的数据存储存储器的空间。在本上下文中的“存储器”是必须无效、驱逐或降级数据以为新进入的数据腾出可用空间的任何类型的存储器,其示例是高速缓冲存储器。
在计算机实现的数据存储存储器系统的一个实施例中,执行以下步骤:
确定数据存储存储器中存储的数据的热度度量;
确定与数据存储存储器中的数据的重新定位有关的重新定位度量;
确定对于数据使热度度量与重新定位度量相关的数据的效用度量;
使得其效用度量未达到效用度量阈值的数据可用于空间收回;以及
其效用度量符合或超过效用度量阈值的数据免除空间收回。
因此,可以另外地保存但是未达到效用度量阈值的数据被替代地无效,并且不必在数据存储存储器中重新定位。
在进一步的实施例中,最近添加到数据存储存储器的数据被免除空间收回合格。
在又进一步的实施例中,通过空间管理策略指定为不合格的数据被免除空间收回合格。
在另一实施例中,从对于数据存储存储器的数据的效用度量的平均值确定效用度量阈值。
在进一步的实施例中,跨一时间段或预定数量的已处理的请求确定对于数据存储存储器的数据的效用度量的平均值。
在又一实施例中,从用于数据存储存储器的LRU列表中识别的对于数据存储的数据的效用度量的平均值动态地确定效用度量阈值。
在另一实施例中,数据存储存储器中存储的数据是页面的形式,并且从对于具有与该试探空间收回牺牲品相似的热度度量的数据的页面的效用度量平均值,动态地确定对于数据的试探空间收回牺牲品页面的效用度量阈值。
在另一实施例中,数据存储存储器中存储的数据在日志结构范围是页面的形式;以及该方法还包括:
无效收回合格的数据页面选择具有最大数量的无效页面的至少一个日志结构范围,用于将其中有效的页面重新定位到另一日志结构范围中,以便收回选择的日志结构范围。
在进一步的实施例中,热度度量基于对其热度度量正在被确定的数据的命中的数量;并且重新定位度量基于其重新定位度量正在被确定的数据重新定位到另一日志结构范围的次数。
附图说明
现在将参考附图仅通过示例的方式描述本发明的优选实施例,其中:
图1是其中实现本发明的示例性网络和计算机实现的存储服务器系统的框图;
图2是图1的计算机实现的数据存储存储器系统的图解示意;
图3是通过图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的一个示例是国际商业机器公司的DS8000TM企业存储服务器。DS8000TM是提供数据存储的高性能、高容量存储控制,其设计为支持数据存储的连续操作和实现数据存储的虚拟化,并且本文仅通过实施例示例的方式呈现,不意图对其限制。因此,本文讨论的存储器数据存储系统不限于DS8000TM,但是可以在任何相当的具有存储器数据无效的存储控制200中实现,而不管制造商、产品名称或者与系统110相关联的组件或组件名称。
在图1的示例中,每个服务器206可以包括一个或多个计算机处理器212和存储器214。计算机处理器212可以包括内部处理和存储能力以存储运行在处理器上并且和其他的事物用于存取数据存储203和204中的数据的软件模块。
在一个实施例中,存储器214可以包括高速缓冲存储器218。例如每当主机102在读取操作中从存储系统110存取数据时,执行该操作(例如,从存储204读取数据)的服务器206可以在可能再次需要该数据的情况下,将数据保存在其高速缓冲存储器218中。如果主机102再次存取该数据,则服务器206可以代替从存储203和204提取该数据而从高速缓冲存储器218提供该数据,节省了时间和资源二者。类似地,当主机系统102执行写入时,服务器206可以在高速缓冲存储器218中进行存储,或者主机系统102可以指引在高速缓冲存储器218中存储数据,以在稍后降级到存储203和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中腾出可用空间。
作为示例,次级高速缓冲存储器300可以使其大小提供存储系统110的总数据存储容量的约百分之一到百分之二十。因此,对于包括约4千万兆字节的数据存储(来自硬盘驱动器204和SSD203二者)的存储系统110,该存储空间的约2百万兆字节可以用作次级高速缓冲存储器300。第一高速缓冲存储器218典型地是次级高速缓冲存储器300的大小的小百分比。作为示例性实施例,用于第一高速缓冲存储器218和次级高速缓冲存储器300二者的存储空间可以安排在各页面中以提供操作的方便。
参考图2、3和4,在一个实施例中,在第一高速缓冲存储器218和也在次级高速缓冲存储器300中必须收回空间以适应新数据。类似地,一旦所有的存储器满了,必须提供用于收回空间的部件以便适应新数据。如上所讨论的,在一些存储器中,诸如次级高速缓冲存储器,数据以日志结构方式在大数据范围280中存储为页面285。图1的控制200例如利用元数据以数据处理信息320跟踪数据页面。日志结构范围(LSE)的性质是所有写入是顺序写入,当存储器300包括SSD时的优点。另一优点是多个页面可以使用单个I/O(输入/输出)操作写入到存储器。又一优点是用于LSE的内部簿记可以在LSE280的开始使用小报头290完成。可替代的,小报头290也可以被放置在范围中的其他地方,诸如范围的末尾。以上讨论缺点并且缺点是有效页面可以被重新定位,并且可以被重新定位许多次,因为LSE被组合和重新安排以便以空LSE的形式收回空间。
在一个实施例中,根据LRU算法查看数据页面以提供LRU列表330,其可以被认为是提名要被无效的页面。如上,如果页面保留并且没有被无效,但是在包括大量无效页面的LSE中,则页面被重新定位到另一LSE以便可以收回当前LSE。在数据处理信息320中的页面或页面组的位置以及其中的映射当页面被重新定位时可以被相应地更新。重新定位度量,诸如重新定位的数量计数,通过重新定位度量340中的页面跟踪。
在一个实施例中,图1的控制200还跟踪诸如次级高速缓冲存储器300的存储器中的数据的热度度量310。
热度度量的一个示例是自从数据页面最后存储在数据存储系统中已经存取数据页面的次数的计数(“命中”)。例如,数据可以位于数据存储204中并且由主机系统读取以及另外存储在次级高速缓冲存储器300中。此外,新写入的数据可以存储在高速缓冲存储器300中,未决移动到数据存储204。例如,命中的数量可以以对于每个页面320的元数据条目中的计数器的形式实现。
热度度量的其他示例包括超过限定时间段或预定数量的已处理的请求的页面的“命中”的数量。热度度量可以可替代地包括页面的“命中”与所有页面的“命中”的平均值相比的比率。
此外,热度度量可以被老化,对不是最近的命中给予较小的权重。该老化可以是线性的或指数的。
如上所讨论的,虽然诸如LSE280的页面295的一些页面被无效,但是可以重新定位有效页面297,并且可以重新定位多次,因为LSE以空LSE的形式被组合和重新安排以收回空间。在一个实施例中,图1的控制200还利用数据处理信息320跟踪数据的位置,并且当数据重新定位在诸如次级高速缓冲存储器300的数据存储存储器中时更新位置数据。控制200对于每个页面跟踪重新定位度量340。
在一个实施例中,重新定位度量340包括在收回过程迭代期间页面已经被重新定位的次数的计数。为了避免答案为无限的比率的可能性,重新定位度量r(p)的分母可以被给予初始值“1”。
重新定位度量340和热度度量310二者可以通过用于与元数据320相关联的每个页面的计数器来确定。
在一个实施例中,通过仅仅选择地重新定位符合热度效用阈值的页面增加被无效的数据量。剩下的页面将被无效和从高速缓冲存储器移除。也就是说,许多冷页面将在收回过程期间被处理为无效页面。因此,将避免大量的重新定位写入,有效地导致更高的存储器性能。
仍然参考图2、3和4,图1的控制200确定对于数据存储存储器300中存储的数据页面的热度度量h(p);并且确定与数据存储存储器中的数据的重新定位有关的重新定位度量r(p)。然后,确定对于数据使热度度量与重新定位度量相关的数据的效用度量u(p)。其效用度量未达到效用度量阈值T的数据被无效,使得它的空间可用于空间收回。在一个实施例中,效用度量包括热度度量与重新定位度量的比率,以公式术语:u(p)=h(p)/r(p)。
因此,可以另外地保存但是未达到效用度量阈值T的数据替代地被无效,并且不必在数据存储存储器300中重新定位。
在步骤400,页面285“p”或许通过LRU算法330被提名用于驱逐。
在步骤410,例如通过提取对于页面的热度度量310和重新定位度量340来测试页面。在步骤420确定对于页面的效用度量,例如热度度量与重新定位度量的比率,u(p)=h(p)/r(p)。
在页面最近已经被添加到数据存储存储器300并且发生要被重新定位的实例中,热度度量可以是冷,因为已经几乎没有命中机会并且重新定位给出不自然地低的效用度量。因此,在步骤430,检查添加到存储的定时,并且如果页面最近已经添加到存储,则免除其空间收回合格,并且在步骤440,使其可用于重新定位,将其保存在存储器330中。因此,该系统允许页面保留在存储器中一些时间以对其给出获得命中的机会。
步骤430可以安排为将其他空间管理策略350应用于免除页面空间收回合格。一些示例包括使得已经被命中仅仅一次的数据对于收回合格,但是已经被命中多于两次的数据在最后命中之后的一时间段不合格;或者通过顺序读取到达存储器的数据对于收回合格,但是由于随机读取到达的数据对于收回不合格。
如果步骤430确定页面对于驱逐合格,则其变为试探空间收回牺牲品页面。
步骤460提供效用阈值T。阈值T可以是固定值,或者可以动态设置。
在一个实施例中,根据对于数据存储存储器300的数据的效用度量的平均值确定效用度量阈值T。
在另一实施例中,对于数据存储存储器的数据的效用度量的平均值跨一时间段确定。
在又一实施例中,根据用于数据存储存储器300的LRU列表330中识别的对于数据存储的数据的效用度量的平均值,动态地确定效用度量阈值T。
步骤470比较对于作为试探空间收回牺牲品的页面p的效用度u(p)量与阈值T。该意图是仅保存和重新定位具有高效用的那些页面,并且无效未达到效用度量阈值T的页面,以便他们不必在数据存储存储器中重新定位。
因此,如果步骤470确定对于页面p的效用度量未达到效用度量阈值T,则步骤480使得该页面可用于空间收回。如果步骤470确定对于页面p的效用度量符合或超过效用度量阈值T,则步骤440使得页面可用于重新定位,免除页面空间收回并且将其保存在存储器300中。
步骤490或者移动到下一页面,或者前进以进行LSE的重新定位和重新安排。页面的重新定位包括确定数据的无效页面对于收回合格;以及选择具有最大数量的无效页面的至少一个日志结构范围,用于将其中有效的页面重新定位到另一日志结构范围中,以便收回选择的日志结构范围。
如果不使用LSE以日志结构方式管理存储器300,则跨整个存储器收回空间,并且重新定位算法、重新定位度量、效用度量和阈值安排为存储器安排的特有事物。
本领域的技术人员将认识到本文公开的本发明的实施例,包括用于收回图1的存储系统110的数据存储存储器300的空间、以及在此提供的功能,可以实施为系统、方法或计算机程序产品。因此,本方面的实施例可以采用以下形式,即完全的硬件所述、完全的软件实施例(包括固件、驻留软件、微代码等)、或者硬件和软件结合,诸如本文一般可以称为“电路”、“模块”或“系统”的组合软件和硬件方面的实施例。此外,本发明的实施还可以采用在一个或多个非瞬时计算机可读介质中实施的计算机程序产品的形式,该计算机可读介质具有实现在其上计算机可读的程序代码。
可以采用一个或多个非瞬时计算机可读的介质的任意组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上实现的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的组合来编写用于执行本发明的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如”C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。将理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些指令通过计算机或其它可编程数据处理装置的处理器执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机、其它可编程数据处理装置或其他设备以特定方式工作的计算机可读介质中,这样存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
本领域的技术人员将理解可以关于以上讨论方法做出改变,包括对步骤的排序的改变。此外,本领域的技术人员将理解可以采用与本文图示的相比不同的具体组件安排。
虽然已经详细图示了本发明的优选实施例,但是不脱离如权利要求阐述的本发明的范围,对本领域的技术人员而言可以出现对这些实施例的修改和改装应当是显然的。

Claims (28)

1.一种用于收回数据存储存储器系统的数据存储存储器的空间的方法,包括:
确定所述数据存储存储器中存储的数据的热度度量;
确定与所述数据存储存储器中的所述数据的重新定位有关的重新定位度量;
确定对于所述数据使所述热度度量与所述重新定位度量相关的所述数据的效用度量;
使得其效用度量未达到效用度量阈值的所述数据可用于空间收回;以及
免除其效用度量符合或超过所述效用度量阈值的所述数据空间收回。
2.根据权利要求1所述的方法,还包括:
免除最近添加到所述数据存储存储器的数据的空间收回合格。
3.根据权利要求1所述的方法,还包括:
免除通过空间管理策略指定为不合格的数据的空间收回合格。
4.根据权利要求1所述的方法,其中从对于所述数据存储存储器的数据的效用度量的平均值确定所述效用度量阈值。
5.根据权利要求4所述的方法,其中跨一时间段确定对于所述数据存储存储器的数据的所述效用度量的平均值。
6.根据权利要求4所述的方法,其中跨预定数量的已处理的空间收回请求确定对于所述数据存储存储器的数据的所述效用度量的平均值。
7.根据权利要求1所述的方法,其中从用于所述数据存储存储器的LRU列表中识别的对于所述数据存储的数据的效用度量的平均值,动态地确定所述效用度量阈值。
8.根据权利要求1所述的方法,其中所述数据存储存储器中存储的所述数据是页面的形式,并且其中从对于具有与试探空间收回牺牲品相似的热度度量的所述数据的页面的效用度量平均值,动态地确定对于所述数据的所述试探空间收回牺牲品页面的所述效用度量阈值。
9.根据权利要求1所述的方法,其中所述数据存储存储器中存储的所述数据在日志结构范围是页面的形式;以及所述方法还包括:
无效收回合格的所述数据的页面;
选择具有最大数量的无效页面的至少一个日志结构范围,用于将其中有效的页面重新定位到另一日志结构范围中,以便收回所述选择的日志结构范围。
10.根据权利要求9所述方法,其中所述热度度量基于对正在确定其热度度量的数据的命中的数量;并且所述重新定位度量基于正在确定其重新定位度量的所述数据重新定位到另一日志结构范围的次数。
11.一种计算机实现的数据存储存储器系统,包括:
至少一个数据存储存储器;以及
用于收回所述数据存储存储器的空间的控制,所述控制:
确定所述数据存储存储器中存储的数据的热度度量;
确定与所述数据存储存储器中的所述数据的重新定位有关的重新定位度量;
确定对于所述数据使所述热度度量与所述重新定位度量相关的所述数据的效用度量;
使得其效用度量未达到效用度量阈值的所述数据可用于空间收回;以及
免除其效用度量符合或超过所述效用度量阈值的所述数据空间收回。
12.根据权利要求11所述的计算机实现的数据存储存储器系统,其中所述控制还:
免除最近添加到所述数据存储存储器的数据的空间收回合格。
13.根据权利要求11所述的计算机实现的数据存储存储器系统,其中所述控制还:
免除通过空间管理策略指定为不合格的数据的空间收回合格。
14.根据权利要求11所述的计算机实现的数据存储存储器系统,其中从对于所述数据存储存储器的数据的效用度量的平均值确定所述效用度量阈值。
15.根据权利要求14所述的计算机实现的数据存储存储器系统,其中跨一时间段确定对于所述数据存储存储器的数据的所述效用度量的平均值。
16.根据权利要求14所述的计算机实现的数据存储存储器系统,其中跨预定数量的已处理的空间收回请求确定对于所述数据存储存储器的数据的所述效用度量的平均值。
17.根据权利要求11所述的计算机实现的数据存储存储器系统,其中从用于所述数据存储存储器的LRU列表中识别的对于所述数据存储的数据的效用度量的平均值,动态地确定所述效用度量阈值。
18.根据权利要求11所述的计算机实现的数据存储存储器系统,其中所述数据存储存储器中存储的所述数据是页面的形式,并且其中从对于具有与试探空间收回牺牲品相似的热度度量的所述数据的页面的效用度量平均值,动态地确定对于所述数据的所述试探空间收回牺牲品页面的所述效用度量阈值。
19.根据权利要求11所述的计算机实现的数据存储存储器系统,其中所述数据存储存储器中存储的所述数据在日志结构范围是页面的形式;以及所述方法还包括:
无效收回合格的所述数据的页面;
选择具有最大数量的无效页面的至少一个日志结构范围,用于将其中有效的页面重新定位到另一日志结构范围中,以便收回所述选择的日志结构范围。
20.根据权利要求19所述的计算机实现的数据存储存储器系统,其中所述热度度量基于对正在确定其热度度量的数据的命中的数量;并且所述重新定位度量基于正在确定其重新定位度量的所述数据重新定位到另一日志结构范围的次数。
21.一种用于收回数据存储存储器系统的数据存储存储器的空间的计算机程序产品,所述计算机程序产品包括具有包含其中的非瞬时计算机可用程序代码的计算机可用存储介质,所述计算机可用程序代码包括:
确定所述数据存储存储器中存储的数据的热度度量的计算机可用程序代码;
确定与所述数据存储存储器中的所述数据的重新定位有关的重新定位度量的计算机可用程序代码;
确定对于所述数据使所述热度度量与所述重新定位度量相关的所述数据的效用度量的计算机可用程序代码;
使得其效用度量未达到效用度量阈值的所述数据可用于空间收回的计算机可用程序代码;以及
免除其效用度量符合或超过所述效用度量阈值的所述数据的空间收回的计算机可用程序代码。
22.根据权利要求21所述的计算机程序产品,还包括:
免除最近添加到所述数据存储存储器的数据的空间收回合格的计算机可用程序代码。
23.根据权利要求21所述的计算机程序产品,还包括:
免除通过空间管理策略指定为不合格的数据空间收回合格的计算机可用程序代码。
24.根据权利要求21所述的计算机程序产品,其中从对于所述数据存储存储器的数据的效用度量的平均值确定所述效用度量阈值。
25.根据权利要求21所述的计算机程序产品,其中从用于所述数据存储存储器的LRU列表中识别的对于所述数据存储的数据的效用度量的平均值动态地确定所述效用度量阈值。
26.根据权利要求21所述的计算机程序产品,其中所述数据存储存储器中存储的所述数据是页面的形式,并且其中从对于具有与试探空间收回牺牲品相似的热度度量的所述数据的页面的效用度量平均值,动态地确定对于所述数据的所述试探空间收回牺牲品页面的所述效用度量阈值。
27.根据权利要求21所述的计算机程序产品,其中其中所述数据存储存储器中存储的所述数据在日志结构范围是页面的形式;以及
还包括:
无效收回合格的所述数据的页面的计算机可以程序代码;
选择具有最大数量的无效页面的至少一个日志结构范围,用于将其中有效的页面重新定位到另一日志结构范围中,以便收回所述选择的日志结构范围的计算机可用程序代码。
28.根据权利要求27所述的计算机程序产品,其中所述热度度量基于对正在确定其热度度量的数据的命中的数量;并且所述重新定位度量基于正在确定其重新定位度量的所述数据重新定位到另一日志结构范围的次数。
CN201280053550.9A 2011-10-31 2012-10-22 用于数据存储存储器的空间收回的方法和系统 Active CN104025059B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/285,890 US9158706B2 (en) 2011-10-31 2011-10-31 Selective space reclamation of data storage memory employing heat and relocation metrics
US13/285,890 2011-10-31
PCT/IB2012/055801 WO2013064936A1 (en) 2011-10-31 2012-10-22 Method and system for selective space reclamation of data storage memory employing heat and relocation metrics

Publications (2)

Publication Number Publication Date
CN104025059A true CN104025059A (zh) 2014-09-03
CN104025059B CN104025059B (zh) 2016-07-13

Family

ID=48173655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280053550.9A Active CN104025059B (zh) 2011-10-31 2012-10-22 用于数据存储存储器的空间收回的方法和系统

Country Status (5)

Country Link
US (5) US9158706B2 (zh)
CN (1) CN104025059B (zh)
DE (1) DE112012004540B4 (zh)
GB (1) GB2510308B (zh)
WO (1) WO2013064936A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329911A (zh) * 2017-07-04 2017-11-07 国网浙江省电力公司信息通信分公司 一种基于cp‑abe属性访问机制的缓存替换算法

Families Citing this family (19)

* 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
WO2014168560A1 (en) * 2013-04-08 2014-10-16 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement in a communication system
US9442944B2 (en) * 2013-11-12 2016-09-13 Dropbox, Inc. Content item purging
US9747228B2 (en) 2014-07-03 2017-08-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Caching systems and methods for execution within an NVDRAM environment
US10191855B2 (en) * 2014-07-03 2019-01-29 Avago Technologies International Sales Pte. Limited Caching systems and methods for page reclamation with simulated NVDRAM in host bus adapters
US10248319B2 (en) 2015-03-31 2019-04-02 International Business Machines Corporation Storage pool capacity management
JP2017010396A (ja) * 2015-06-24 2017-01-12 富士通株式会社 ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム
US10204045B2 (en) 2016-08-30 2019-02-12 International Business Machines Corporation Data file handling in a volatile memory
CN106502592A (zh) * 2016-10-26 2017-03-15 郑州云海信息技术有限公司 固态硬盘缓存块回收方法及系统
US10649665B2 (en) * 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
US10126971B1 (en) 2017-06-21 2018-11-13 International Business Machines Corporation Enhanced application performance in multi-tier storage environments
US10353596B2 (en) * 2017-09-28 2019-07-16 International Business Machines Corporation Data storage system performance management
CN109725825B (zh) 2017-10-27 2022-03-11 伊姆西Ip控股有限责任公司 用于管理缓存的方法、设备和计算机程序产品
US10824512B2 (en) * 2018-07-31 2020-11-03 EMC IP Holding Company LLC Managing journaling resources with copies stored in multiple locations
US11797441B2 (en) * 2020-01-10 2023-10-24 Micron Technology, Inc. Cache media management
US12001716B2 (en) 2021-03-30 2024-06-04 Micron Technology, Inc. Key-value data storage system using content addressable memory
US20220357876A1 (en) * 2021-05-04 2022-11-10 Micron Technology, Inc. Programming content addressable memory
US11955175B2 (en) 2021-05-18 2024-04-09 Micron Technology, Inc. Copy redundancy in a key-value data storage system using content addressable memory
US11768767B2 (en) 2021-10-29 2023-09-26 Micro Focus Llc Opaque object caching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103965A1 (en) * 2001-01-26 2002-08-01 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
CN101339808A (zh) * 2008-07-28 2009-01-07 华中科技大学 存储块的擦除方法及装置
US20100030970A1 (en) * 2008-08-01 2010-02-04 International Business Machines Corporation Adaptive Spill-Receive Mechanism for Lateral Caches
WO2011061724A1 (en) * 2009-11-23 2011-05-26 Amir Ban Memory controller and methods for enhancing write performance of a flash device

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US5933840A (en) * 1997-05-19 1999-08-03 International Business Machines Corporation Garbage collection in log-structured information storage systems using age threshold selection of segments
US6425057B1 (en) 1998-08-27 2002-07-23 Hewlett-Packard Company Caching protocol method and system based on request frequency and relative storage duration
US6622199B1 (en) * 1999-07-02 2003-09-16 Qualcomm Incorporated Method for minimizing data relocation overhead in flash based file systems
US6826599B1 (en) 2000-06-15 2004-11-30 Cisco Technology, Inc. Method and apparatus for optimizing memory use in network caching
US7047387B2 (en) * 2003-07-16 2006-05-16 Microsoft Corporation Block cache size management via virtual memory manager feedback
US7596662B2 (en) * 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US20080209131A1 (en) * 2006-11-22 2008-08-28 Kornegay Marcus L Structures, systems and arrangements for cache management
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US9396103B2 (en) 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US8326897B2 (en) * 2007-12-19 2012-12-04 International Business Machines Corporation Apparatus and method for managing data storage
US8099554B1 (en) * 2007-12-31 2012-01-17 Emc Corporation System and method for flash-based data caching
US8095738B2 (en) 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
WO2011074040A1 (en) * 2009-12-17 2011-06-23 Hitachi,Ltd. Storage apparatus and its control method
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
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
US9158706B2 (en) 2011-10-31 2015-10-13 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
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
US9317448B2 (en) * 2013-07-30 2016-04-19 Advanced Micro Devices, Inc. Methods and apparatus related to data processors and caches incorporated in data processors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
US20020103965A1 (en) * 2001-01-26 2002-08-01 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
CN101339808A (zh) * 2008-07-28 2009-01-07 华中科技大学 存储块的擦除方法及装置
US20100030970A1 (en) * 2008-08-01 2010-02-04 International Business Machines Corporation Adaptive Spill-Receive Mechanism for Lateral Caches
WO2011061724A1 (en) * 2009-11-23 2011-05-26 Amir Ban Memory controller and methods for enhancing write performance of a flash device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GAUR ET AL.: "Bypass and Insertion Algorithms for Exclusive Last-level Caches", 《ACM》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329911A (zh) * 2017-07-04 2017-11-07 国网浙江省电力公司信息通信分公司 一种基于cp‑abe属性访问机制的缓存替换算法
CN107329911B (zh) * 2017-07-04 2020-07-28 国网浙江省电力公司信息通信分公司 一种基于cp-abe属性访问机制的缓存替换方法

Also Published As

Publication number Publication date
US9830277B2 (en) 2017-11-28
CN104025059B (zh) 2016-07-13
DE112012004540B4 (de) 2022-04-21
US10042779B2 (en) 2018-08-07
DE112012004540T5 (de) 2014-08-07
US10482032B2 (en) 2019-11-19
GB201409102D0 (en) 2014-07-02
GB2510308B (en) 2014-11-05
US20160292083A1 (en) 2016-10-06
US9158706B2 (en) 2015-10-13
US20170364448A1 (en) 2017-12-21
US20130111160A1 (en) 2013-05-02
US9442660B2 (en) 2016-09-13
GB2510308A (en) 2014-07-30
WO2013064936A1 (en) 2013-05-10
US20180232318A1 (en) 2018-08-16
US20160004456A1 (en) 2016-01-07

Similar Documents

Publication Publication Date Title
CN104025059A (zh) 用于采用热度和重新定位度量的数据存储存储器的选择性空间收回的方法和系统
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US9037791B2 (en) Tiered caching and migration in differing granularities
US9311253B2 (en) Thinly provisioned flash cache with shared storage pool
US9495294B2 (en) Enhancing data processing performance by cache management of fingerprint index
US8549225B2 (en) Secondary cache for write accumulation and coalescing
US10152423B2 (en) Selective population of secondary cache employing heat metrics
US9417808B2 (en) Promotion of partial data segments in flash cache
US8688913B2 (en) Management of partial data segments in dual cache systems
CN103907100A (zh) 用于次级高速缓冲存储器的填充的动态调整阈值
US9471252B2 (en) Use of flash cache to improve tiered migration performance
Wu et al. {IDO}: Intelligent Data Outsourcing with Improved {RAID} Reconstruction Performance in {Large-Scale} Data Centers

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