CN106233265A - 将访问频率层次结构用于逐出目标的选择 - Google Patents
将访问频率层次结构用于逐出目标的选择 Download PDFInfo
- Publication number
- CN106233265A CN106233265A CN201680001017.6A CN201680001017A CN106233265A CN 106233265 A CN106233265 A CN 106233265A CN 201680001017 A CN201680001017 A CN 201680001017A CN 106233265 A CN106233265 A CN 106233265A
- Authority
- CN
- China
- Prior art keywords
- memory page
- list
- scan period
- assigned
- accessed
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
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)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种方法,包括,在一个或多个工作负载(52)访问存储器(28)中的存储页的计算系统(20)中,定义多个存储页列表(60A...60X),以及为每个存储页列表指定各自不同的扫描周期。通过根据为该存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续地估计存储页被访问的访问频率,并基于所估计的访问频率将存储页重新分配到存储页列表。存储页中的一个或多个基于存储页到存储页列表的分配历史被从存储器逐出。
Description
发明领域
本发明总体上涉及数据存储,并且特别是涉及用于基于使用情况信息的数据存储的方法和系统。
发明背景
运行虚拟机(VM)的计算系统使用各种机构来有效使用存储器。例如,一些常用的机构包括存储页到外部储存器的去除重复和逐出。一些外部储存系统包括多个层,如固态驱动器(SSD)和硬盘驱动器(HDD)。
发明概述
文中所描述的本发明的实施例提供一种方法,包括在一个或多个工作负载在其中访问存储器中的存储页的计算系统中,定义多个存储页列表,以及为每个存储页列表指定各自不同的扫描周期。通过根据为该存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续估计存储页被访问的访问频率,并基于所估计的访问频率将存储页重新分配到存储页列表。存储页中的一个或多个基于存储页到存储页列表的分配历史被从存储器逐出。
在一些实施例中,检查和重新分配存储页包括,响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后已经被访问,将该存储页重新分配到具有比第一扫描周期更大的第二扫描周期的第二存储页列表。
在一些实施例中,检查和重新分配存储页包括,响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后还没被访问,将该存储页重新分配到具有比第一扫描周期更小的第二扫描周期的第二存储页列表。在实施例中,第二扫描周期在所指定的扫描周期中为最小的扫描周期。
在所公开的实施例中,逐出存储页包括,响应于识别存储页被分配到具有所指定的扫描周期中最小的扫描周期的存储页列表且在超过预定义的时间周期期间未被访问,来逐出存储页。
在一些实施例中,逐出存储页包括,基于存储页的分配历史,从多个储存层中,选择供逐出存储页所用的储存层。在实施例中,选择所述储存层包括,计算存储页被分配到相应的存储页列表的次数的数量的加权平均值,以及基于加权平均值选择储存层。在另一实施例中,选择储存层包括,应用根据分配历史选择储存层的映射,并且该方法还包括评估储存层的先前选择的质量,以及基于所评估的质量调整该映射。
根据本发明的实施例,附加地提供了包括存储器和处理器的计算系统。存储器被配置用于储存存储页。处理器被配置为运行访问所述存储器中的存储页的一个或多个工作负载、定义多个存储页列表并为每个存储页列表指定各自不同的扫描周期、通过根据为该存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续地估计存储页被访问的访问频率、基于所估计的访问频率将存储页重新分配到存储页列表、以及基于存储页到存储页列表的分配历史将存储页中的一个或多个从存储器逐出。
根据本发明的实施例,还提供了一种计算机软件产品,该产品包括其中存储有程序指令的有形的非暂时性计算机可读介质,该指令在由运行访问存储器中的存储页的一个或多个工作负载的处理器读取时,使处理器定义多个存储页列表、为每个存储页列表指定各自不同的扫描周期、通过根据为该存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续地估计存储页被访问的访问频率、基于所估计的访问频率将存储页重新分配到存储页列表、以及基于存储页到存储页列表的分配历史将存储页中的一个或多个从存储器逐出。
从结合附图进行的本发明的实施例的以下详细描述,本发明将被更完全地理解,其中:
附图简述
图1是根据本发明的实施例示意地图示计算系统的方框图;
图2是根据本发明的实施例示意地图示选择用于逐出的候选存储页的过程的图示;以及
图3是根据本发明的实施例示意地图示用于存储页逐出的方法的流程图。
实施例的详细描述
概述
许多计算机系统包括易失性存储器和非易失性储存器两者。通常情况下,易失性存储器访问快速但具有有限的存储空间,而非易失性储存器具有非常大的存储空间但访问缓慢。因此,好的决策是在易失性存储器中保留频繁使用的存储页,以及将很少访问的存储页逐出到非易失性储存器。然而,跟踪各个存储页的访问频率的任务招致计算开销且可能引起性能退化。
文中所描述的本发明的实施例提供用于将存储页从易失性存储器逐出到可替代的储存器的改进的方法和系统。所公开的技术减少了用于跟踪存储页的访问频率所需的计算资源,以及相关的性能退化。通过做出更好的逐出决定,所公开的技术还降低了必须回收已经被逐出的存储页的可能性,从而进一步提高了性能。
在一些实施例中,计算系统运行虚拟机(VM)或访问存储页的其他工作负载。系统根据当前已知的存储页的访问频率将由工作负载访问的存储页分类成多个列表。
系统通过周期性地扫描列表来跟踪存储页的访问频率。在示例实施中,每个存储页具有“访问位”,其在该页由工作负载访问时被设置为“1”,以及在系统在下个扫描周期中扫描其时被重置为“0”。系统根据存储页被扫描时的访问位是“0”还是“1”来评定存储页的访问频率。
在所公开的实施例中,每个列表以不同的扫描周期被扫描。第一列表被指定最小的扫描周期,下个列表被分配更大的扫描周期,以此类推。在扫描给定列表上的存储页时,如果发现存储页已经自上个扫描周期后由工作负载访问过(例如,如果存储页的访问位为“1”),则系统将存储页移到下个列表(其具有更大的扫描周期)。如果存储页自上个扫描周期后还没被访问过(例如,存储页的访问位为“0”),则系统将存储页移到第一列表(其具有最小的扫描周期)。
由于该过程,第一列表保留最少访问的存储页,下个列表保存更频繁访问的存储页,以此类推。最后的列表保存最频繁访问的存储页。当使用该数据结构和过程时,很少访问的存储页更经常被扫描(即,以相对小的扫描周期),而频繁访问的存储页更不经常被扫描(即,以相对大的扫描周期)。
所公开的扫描过程减少了耗费在扫描存储页上的总计算资源,例如,因为扫描频繁访问的存储页比扫描很少访问的存储页在性能方面成本更大。所公开的过程还减少了由于扫描引起的对VM的操作的中断。
当存储页如上所述在列表之间移动时,给定的存储页到各个列表的分配历史通常表示工作负载在这个存储页上的访问模式。特别地,该历史表示存储器在不久的将来将被再次访问的可能性。
因此,在一些实施例中,系统基于存储页到各个列表的分配历史将存储页从存储器逐出。例如,系统可通过保持多个计数器值来跟踪存储页的分配历史,该计数器值计数存储页被分配到每个列表的次数的数量。
在一些实施例中,系统将存储页逐出到储存子系统,该储存子系统具有在访问延迟上不同的多个储存层。在这样的实施例中,系统可使用分配历史,例如,计数器值的加权平均值,来选择存储页被逐出到哪个层。在实施例中,系统运行检查其逐出决定的质量的自适应过程,并相应地调整在计算加权平均值时使用的权重。
系统描述
图1是根据本发明的实施例示意地图示计算系统20的方框图。在本示例中,系统20包括计算机,如个人计算机、数据中心的服务器或其他计算机机群或任何其他合适的计算机。
在图1的实施例中,系统20包括中央处理单元(CPU)24、易失性存储器28以及分层的储存子系统32。CPU24也被称作处理器。易失性存储器28也被称作随机存取存储器(RAM)或简单称作存储器,且可包括,例如,一个或多个动态RAM(DRAM)设备或静态RAM(SRAM)设备。
储存子系统32通常包括被称作储存层的多种类型的储存器设备。储存层通常在如访问速度、储存空间和成本的因素上各不相同。在本示例中,第一层包括一个或多个RAM设备36,也被称作“压缩RAM”,其中数据被以压缩的形式存储。(压缩RAM36可独立于RAM28实施,或通过将压缩的数据存储在RAM28的储存空间的部分中实施。)第二层包括一个或多个固态驱动器(SSD)40。第三层包括一个或多个硬盘驱动器(HDD)44。
在可替代的实施例中,储存子系统32可包括任何其他合适数量的任何合适类型的储存层。例如,可被定义为单独的储存层的附加的储存模式是“远程RAM”-位于整个通信网络(例如,在不同的计算节点上)的RAM中的储存器。远程RAM中的储存器可能比本地RAM更缓慢,但比SSD或HDD更快速。可能的储存层的其他示例包括储存级存储器(SCM),如由Intel和Micron提供的XPoint或电阻式RAM(ReRAM)。SCM通常可被定位为介于RAM和SSD之间的中间层。可能的储存层的又另一示例是使用如NVMe的快速总线接口的SSD。以上列出的可能的储存器纯粹通过示例的方式描绘。所公开的技术决不限于储存层的任何特定的配置。
CPU24运行虚拟层,该虚拟层将系统20的物理资源分配到一个或多个工作负载。在本示例中,虚拟层包括管理程序48,以及工作负载包括虚拟机(VM)52。例如,被提供到工作负载的物理资源可包括CPU资源、易失性存储器(例如,RAM)资源、储存资源(例如,储存子系统32的资源)以及网络化资源。
对于VM 52附加地或可替代地,例如,其他类型的工作负载可包括操作系统容器、过程、应用、或任何其他合适的工作负载类型。为了清晰起见,以下的描述主要是指VM。然而,所公开的技术以类似的方式适用于任何其他类型的工作负载。
作为所公开的技术的操作的一部分,VM 52访问存储页,例如,读取和写入存储页。存储页中的一些可被存储在RAM 28中,而其他存储页可被存储在储存子系统32的各个储存层中。存储页的管理,特别是存储页从RAM 28到储存子系统32的逐出,使用以下详细描述的方法由管理程序48执行。
图1中示出的系统20的配置为示例配置,其仅仅出于概念清晰的目的被选择。在可替代的实施例中,可使用任何其他合适的系统配置。所公开的技术通常是在软件中实施的,但也可在硬件中实施或使用软件和硬件元件的组合来实施。
通常情况下,CPU 24包括一个或多个通用处理器,该通用处理器被在软件中编程以执行本文中所描述的功能。软件或其组件(例如,管理程序48或其部分、VM 52或其他工作负载、或其他软件组件)可(例如,通过网络)以电子形式被下载到处理器,或该软件或其组件可以可替代地或附加地被提供和/或存储在非暂时性有形媒介上,如磁存储器、光学存储器或电子存储器。
使用具有不同扫描周期的多个存储页列表跟踪存储页访问并做出逐出决定
通常情况下,RAM 28具有快速的访问时间但受限的存储空间。另一方面,储存子系统32通常具有大得多的储存空间但访问缓慢。因此,在一些实施例中,管理程序48旨在于RAM 28中保留频繁使用的相对少量的存储页,并将很少访问的存储页逐出到储存子系统32。
管理程序48通常通过运行后台进程跟踪各个存储页的访问频率,该后台进程周期性地扫描RAM 28中的存储页。在示例实施例中,每个存储页具有“访问位”,其在该页由VM52访问时被设置为“1”,以及在随后的扫描周期中扫描存储页时由管理程序重置为“0”。因此,为“1”的访问位指示存储页自其由上个扫描周期重置为“0”起后由VM访问过。在当前背景下,从存储页读出和写入存储页都被视为访问存储页。
在实践中,以这种方式跟踪各个存储页的访问频率的任务是计算密集的并且可能引起性能退化。在一些实施例中,管理程序48根据存储页的当前已知的访问频率,通过将RAM 28中的存储页分成多个列表减少开销和相关的退化。管理程序通过以不同的扫描周期扫描每个列表来选择要逐出的存储页。
图2是根据本发明的实施例示意地图示选择用于逐出的候选存储页的过程的图示。该图示出了多个列表60A...60X。该列表也被称作“最近最少使用的(LRU)代”或简单称作“代”。可使用任何合适数量的列表。新的存储页最初被分配给列表60A。
管理程序48为列表定义了各自不同的、单调递增的扫描周期。换句话说,管理程序每A秒检查列表60A上的存储页的访问位,每B秒检查列表60B上的存储页的访问位,每C秒检查列表60C上的存储页的访问位,以此类推,其中A<B<C<…<X。在示例实施例中,A=B/2,B=C/2,即,每个列表上的存储页被访问的频率是下个列表上的存储页的两倍。
当扫描在给定列表上的存储页时,如果管理程序48发现访问位为“1”的存储页,则管理程序将该存储页移到下个列表(以更大的扫描周期扫描的下个较高的“代”)。如果管理程序48发现访问位为“0”的存储页,则管理程序将该存储页移到列表60A,其是以最小的扫描周期扫描的最低的“代”。在可替代的实施例中,管理程序将该存储页移到较低的列表,该较低的列表以比所给定的列表更小的扫描周期扫描,但不一定总是移到60A。
由于该过程,列表60A(其被最频繁地扫描)保存最少访问的存储页。列表60X(其被最不频繁地扫描)保存最频繁访问的存储页。一般来说,该数据结构和扫描过程以与存储页的当前已知的访问频率反向相关的扫描周期扫描每个存储页。
VM 52访问RAM 28中的某一存储页的实际频率可随着时间变化。因此,存储页可随着时间从一个列表移到另一列表。例如,存储页可移到较高的代以响应于较高访问频率,当长时期没有被访问时落到最低的代,并且随后再次移到较高的代,以此类推。
因此,给定的存储页到各个列表的分配历史通常表示VM 52在该存储页上的访问模式。特别地,到列表的分配历史表示存储器在不久的将来将被再次访问的可能性。在一些实施例中,管理程序48基于存储页到各个列表60A...60X的分配历史将存储页从RAM 28逐出到储存子系统32。
在实施例中,管理程序48识别被分配到最低的列表(列表60A)并在超过预定义的时间周期期间(表示为TOO_OLD)没有被访问的存储页。管理程序将这些存储页标记为逐出候选64,并随后将它们逐出到储存子系统32。如果管理程序例如通过检测页错误检测逐出候选由VM 52访问,则存储页返回到列表60A。
管理程序48可以各种方式跟踪存储页的分配历史。例如,管理程序可维护X个计数器用于每个存储页,例如,作为存储页元数据的一部分。存储页的第i计数器计数存储页被分配到第i列表的次数的数量。在该实施例中,当将存储页从第m列表移到第n列表时,管理程序增加存储页元数据中的第n列表的计数器值。
在另一实施例中,为了减小存储页元数据的大小,管理程序48仅保留计数器值的加权平均值。在该实施例中,每个列表被分配相应的权重。当将存储页从第m列表移到第n列表时,管理程序将存储页元数据中的加权平均值增加第n列表的权重。在实施例中,较高代的列表被分配较高的权重,反之亦然。
因此,在最低列表上消耗其生命周期的大部分的存储页将具有相对小的加权平均值。往往沿着其生命周期到达较高阶列表的存储页将具有相对高的加权平均值。在实施例中,列表中的一个或多个(例如,较低的列表)被分配负权重,以及一个或多个其他列表(例如,较高的列表)被分配正权重。这种方案由于所得到的加权平均值可以较少数量的位储存而得以减少存储空间。
在可替代的实施例中,管理程序48可以任何其他适合的方式跟踪存储页到各个列表的分配历史。
如以上所述,储存子系统32具有在访问延迟上各不相同的多个储存层。在一些实施例中,当准备逐出候选存储页时,管理程序48利用该存储页的分配历史来选择将该候选存储页逐出到的层。管理程序48在做出这些决定时可使用各种策略或探试法。
例如,在最低的列表上消耗其生命周期的大部分的候选存储页可被逐出到HDD 44(其具有高的访问延迟),因为其在可预见的未来不太可能被再次访问。相反,假定在不久的将来有较高的可能性其将被访问,经常到达较高阶的列表的候选存储页可被逐出到压缩RAM 36或SSD 40(其具有比HDD更低的访问延迟)。
在一些实施例中,管理程序48基于以上所描述的计数器值的加权平均值来为逐出候选存储页选择储存层。具有高平均权值的候选存储页通常将被逐出到较高的层(具有较小的访问延迟),如压缩RAM 36。具有低平均权值的候选存储页通常将被逐出到较低的层(具有较大的访问延迟),如HDD 44。
在示例实施例中,如果存储页的加权平均值在表示为R1的范围内,则管理程序48将该存储页逐出到压缩RAM 36,如果存储页的加权平均值在表示为R2的范围内,则管理程序48将该存储页逐出到SSD 40,以及如果存储页的加权平均值在表示为R3的范围内,则管理程序48将该存储页逐出到HDD 44。范围R1、R2和R3,和/或用于计算加权平均值的权重,可自适应地被调整以提高管理程序的逐出决定的质量。
在当前背景下,范围R1、R2和R3,以及用于计算加权平均值的权重,被统称为映射,该映射根据存储页到存储页列表的过去分配历史选择储存层。管理程序可随着时间调整该映射。以下进一步描述这种适应机制。
图3是根据本发明的实施例示意地图示用于存储页逐出的方法的流程图。在扫描步骤70,方法以管理程序48扫描列表60A...60X开始,该列表60A...60X具有为列表所指定的各自不同的扫描周期。在页移动步骤74,管理程序根据存储页的访问位值在列表之间移动存储页。
在计数器更新步骤78,管理程序更新已经移动的页的计数器值。在加权平均值计算步骤80,管理程序48计算(或更新)该存储页的计数器值的加权平均值。
在逐出检查步骤82,管理程序48检查用于从RAM 28逐出的候选存储页。例如,管理程序可检查列表60A上的存储页中的任何一个是否在超过TOO_LONG时间阈值期间未被访问。如果没有存储页是用于逐出的候选,则方法返回到以上的步骤70。
如果已经发现候选存储页,则在层选择步骤90,管理程序48选择存储页待被逐出到的储存子系统32中的储存层。如以上在步骤80所计算的,管理程序基于存储页的计数器值的加权平均值来选择储存层。在逐出步骤94,管理程序将候选存储页逐出到所选择的储存层。在逐出时,管理程序将加权平均值和存储页的计数器值重置为零。随后,方法返回到以上的步骤70。
在一些实施例中,管理程序48运行检查先前逐出决定的质量的自适应过程,并调整在计算加权平均值时使用的权重和/或映射到不同层的加权平均值的范围。
在示例实施例中,管理程序48为子系统32中的每个储存层指定“期望的持续时间范围”。如果被逐出到储存子系统32的某一层的储存页在落入该层的期望范围的持续时间内保持在子系统32中,则逐出决定被认为是正确的。否则,即,如果消耗在储存器中的实际持续时间低于或高于期望的范围,则逐出决定被认为是错误的。
例如,考虑下表中指定的持续时间:
在本示例中,在VM 52下次访问该存储页之前,期望被逐出到压缩RAM 36的存储页保留在那至少T0秒,但不大于T1秒。如果满足该条件,则将该存储页到逐出压缩RAM的决定被认为是正确的。如果在下次访问之前的实际持续时间低于T0,则最好不要逐出该存储页。如果在下次访问之前的实际持续时间高于T1,则最好将该存储页逐出到SSD或HDD。
以类似的方式,期望被逐出到SSD 40的存储页保留在那至少T2秒,但不大于T3秒。如果在下次访问之前的实际持续时间低于T2,则最好不要逐出该存储页或将其逐出到压缩RAM。如果在下次访问之前的实际持续时间高于T3,则最好将该存储页逐出到HDD。
最后,期望被逐出到HDD 44的存储页保留在那至少T4。如果在下次访问之前的实际持续时间低于T4,则最好将该存储页逐出到某更高的层,或不逐出。在一些实施例中,在相邻层的范围之间可能存在重叠。
在一些实施例中,管理程序48计数错误的逐出决定的数量,并可能为不同的层保持单独的错误计数。管理程序可调整将加权平均值映射到层和/或用于计算加权平均值的权重的范围R1、R2和R3,以便降低错误计数。该调整提高了管理程序的逐出决定的质量,即,增加了存储页在合适时被逐出并被逐出到正确的储存层的可能性。
将要理解的是,以上描述的实施例是通过示例的方式引用的,并且本发明不限于上文中已经特别示出和描述的那些。相反,本发明的范围包括上文所描述的各种特征以及本领域技术人员在阅读以上描述之后将想到的且未在现有技术中公开的其变型和修改的组合和子组合。通过引用结合在本专利申请中的文档被视为本申请的组成部分,除了在这些结合的文档中定义的任何术语与本说明书中明确地或隐含地作出的定义冲突时,仅应考虑本说明书中的定义。
Claims (17)
1.一种方法,包括:
在一个或多个工作负载访问存储器中的存储页的计算系统中,定义多个存储页列表,以及为每个存储页列表指定各自不同的扫描周期;
通过根据为该存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页,来连续估计所述存储页被访问的访问频率,并基于所估计的访问频率将所述存储页重新分配到所述存储页列表;以及
基于所述存储页到所述存储页列表的分配历史,将所述存储页中的一个或多个从所述存储器逐出。
2.根据权利要求1所述的方法,其中,检查和重新分配所述存储页包括:响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后已经被访问,将所述存储页重新分配到具有比所述第一扫描周期更大的第二扫描周期的第二存储页列表。
3.根据权利要求1所述的方法,其中,检查和重新分配所述存储页包括:响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后还没被访问,将所述存储页重新分配到具有比所述第一扫描周期更小的第二扫描周期的第二存储页列表。
4.根据权利要求3所述的方法,其中,所述第二扫描周期在所指定的扫描周期中为最小的扫描周期。
5.根据权利要求1-4中的任一项所述的方法,其中,逐出所述存储页包括:响应于识别存储页被分配到具有所指定的扫描周期中最小的扫描周期的存储页列表且在超过预定义的时间周期期间未被访问,来逐出所述存储页。
6.根据权利要求1-4中的任一项所述的方法,其中,逐出所述存储页包括:基于存储页的分配历史,从多个存储层中,选择供逐出所述存储页所用的储存层。
7.根据权利要求6所述的方法,其中,选择所述储存层包括:计算所述存储页被分配到相应的存储页列表的次数的数量的加权平均值,以及基于所述加权平均值选择所述储存层。
8.根据权利要求6所述的方法,其中,选择所述储存层包括:应用根据所述分配历史选择所述储存层的映射,并且包括评估所述储存层的先前选择的质量,以及基于所评估的质量调整所述映射。
9.一种计算系统,包括:
存储器,其用于储存存储页;以及
处理器,其被配置为:运行访问所述存储器中的所述存储页的一个或多个工作负载、定义多个存储页列表并为每个存储页列表指定各自不同的扫描周期、通过根据为所述存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续地估计所述存储页被访问的访问频率、基于所估计的访问频率将所述存储页重新分配到所述存储页列表、以及基于所述存储页到所述存储页列表的分配历史将所述存储页中的一个或多个从所述存储器逐出。
10.根据权利要求9所述的计算系统,其中,响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后已经被访问,所述处理器被配置为将所述存储页重新分配到具有比所述第一扫描周期更大的第二扫描周期的第二存储页列表。
11.根据权利要求9所述的计算系统,其中,响应于识别当前被分配到具有第一扫描周期的第一存储页列表的存储页自其先前被检查过后还没被访问,所述处理器被配置为将所述存储页重新分配到具有比所述第一扫描周期更小的第二扫描周期的第二存储页列表。
12.根据权利要求11所述的计算系统,其中,所述第二扫描周期在所指定的扫描周期中为最小的扫描周期。
13.根据权利要求9-12中的任一项所述的计算系统,其中,所述处理器被配置为,响应于识别所述存储页被分配到具有所指定的扫描周期中最小的扫描周期的存储页列表,且在超过预定义的时间周期期间未被访问,来逐出所述存储页。
14.根据权利要求9-12中的任一项所述的计算系统,其中,所述处理器被配置为基于存储页的所述分配历史,从多个存储层中选择供逐出所述存储页所用的储存层。
15.根据权利要求14所述的计算系统,其中,所述处理器被配置为计算所述存储页被分配到相应的存储页列表的次数的数量的加权平均值,以及基于所述加权平均值选择所述储存层。
16.根据权利要求14所述的计算系统,其中,所述处理器被配置为通过应用根据所述分配历史选择所述储存层的映射来选择所述储存层、评估所述储存层的先前选择的质量、以及基于所评估的质量调整所述映射。
17.一种计算机软件产品,所述产品包括其中存储有程序指令的有形的非暂时性计算机可读介质,该指令在由运行访问存储器中的存储页的一个或多个工作负载的处理器读取时,使所述处理器定义多个存储页列表、为每个存储页列表指定各自不同的扫描周期、通过根据为所述存储页列表所指定的扫描周期而周期性地检查每个存储页列表上的存储页来连续地估计所述存储页被访问的访问频率、基于所估计的访问频率将所述存储页重新分配到所述存储页列表、以及基于所述存储页到所述存储页列表的分配历史将所述存储页中的一个或多个从所述存储器逐出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562120931P | 2015-02-26 | 2015-02-26 | |
US62/120,931 | 2015-02-26 | ||
PCT/IB2016/050396 WO2016135570A1 (en) | 2015-02-26 | 2016-01-27 | Using access-frequency hierarchy for selection of eviction destination |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106233265A true CN106233265A (zh) | 2016-12-14 |
Family
ID=56787947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680001017.6A Pending CN106233265A (zh) | 2015-02-26 | 2016-01-27 | 将访问频率层次结构用于逐出目标的选择 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9971698B2 (zh) |
EP (1) | EP3126987A4 (zh) |
CN (1) | CN106233265A (zh) |
WO (1) | WO2016135570A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112053733A (zh) * | 2019-06-05 | 2020-12-08 | 美光科技公司 | 故障敏感存储器页面的选择性加速取样 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105938447B (zh) * | 2015-03-06 | 2018-12-14 | 华为技术有限公司 | 数据备份装置及方法 |
US10545881B2 (en) | 2017-07-25 | 2020-01-28 | International Business Machines Corporation | Memory page eviction using a neural network |
US10509721B2 (en) | 2017-11-09 | 2019-12-17 | Microsoft Technology Licensing, Llc | Performance counters for computer memory |
CN110413545B (zh) * | 2018-04-28 | 2023-06-20 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
CN110908923B (zh) * | 2018-09-14 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 内存回收方法及装置 |
US11573709B2 (en) | 2020-01-07 | 2023-02-07 | International Business Machines Corporation | Maintaining data structures in a memory subsystem comprised of a plurality of memory devices |
US11907543B2 (en) * | 2020-01-07 | 2024-02-20 | International Business Machines Corporation | Managing swappable data structures in a plurality of memory devices based on access counts of the data structures |
US11620055B2 (en) | 2020-01-07 | 2023-04-04 | International Business Machines Corporation | Managing data structures in a plurality of memory devices that are indicated to demote after initialization of the data structures |
US11663144B2 (en) | 2020-01-20 | 2023-05-30 | International Business Machines Corporation | LRU list reorganization for favored and unfavored volumes |
US20230031304A1 (en) * | 2021-07-22 | 2023-02-02 | Vmware, Inc. | Optimized memory tiering |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
US20120011504A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Online classification of memory pages based on activity level |
US20120246386A1 (en) * | 2011-03-25 | 2012-09-27 | Hitachi, Ltd. | Storage system and storage area allocation method |
CN102771084A (zh) * | 2009-12-23 | 2012-11-07 | 思杰系统有限公司 | 用于在多核gslb设备中管理静态邻近性的系统和方法 |
US20130132696A1 (en) * | 2011-11-21 | 2013-05-23 | Hitachi, Ltd. | Storage system management apparatus and management method |
Family Cites Families (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159667A (en) | 1989-05-31 | 1992-10-27 | Borrey Roland G | Document identification by characteristics matching |
US6148377A (en) | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US6044438A (en) | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US6591355B2 (en) | 1998-09-28 | 2003-07-08 | Technion Research And Development Foundation Ltd. | Distributed shared memory system with variable granularity |
US6530035B1 (en) | 1998-10-23 | 2003-03-04 | Oracle Corporation | Method and system for managing storage systems containing redundancy data |
US6507891B1 (en) | 1999-07-22 | 2003-01-14 | International Business Machines Corporation | Method and apparatus for managing internal caches and external caches in a data processing system |
US7181581B2 (en) | 2002-05-09 | 2007-02-20 | Xiotech Corporation | Method and apparatus for mirroring data stored in a mass storage system |
US7127577B2 (en) | 2003-01-21 | 2006-10-24 | Equallogic Inc. | Distributed snapshot process |
US9020801B2 (en) | 2003-08-11 | 2015-04-28 | Scalemp Inc. | Cluster-based operating system-agnostic virtual computing system |
US7162476B1 (en) | 2003-09-11 | 2007-01-09 | Cisco Technology, Inc | System and method for sharing global data within distributed computing systems |
US7694151B1 (en) | 2003-11-20 | 2010-04-06 | Johnson Richard C | Architecture, system, and method for operating on encrypted and/or hidden information |
US7421533B2 (en) | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
US7480298B2 (en) | 2004-08-30 | 2009-01-20 | International Business Machines Corporation | Lazy deregistration of user virtual machine to adapter protocol virtual offsets |
US8364849B2 (en) | 2004-08-30 | 2013-01-29 | International Business Machines Corporation | Snapshot interface operations |
US20060053139A1 (en) | 2004-09-03 | 2006-03-09 | Red Hat, Inc. | Methods, systems, and computer program products for implementing single-node and cluster snapshots |
US20060143389A1 (en) | 2004-12-28 | 2006-06-29 | Frank Kilian | Main concept for common cache management |
US8073926B2 (en) | 2005-01-07 | 2011-12-06 | Microsoft Corporation | Virtual machine image server |
US7363444B2 (en) | 2005-01-10 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method for taking snapshots of data |
US7640363B2 (en) | 2005-02-16 | 2009-12-29 | Microsoft Corporation | Applications for remote differential compression |
US7617370B2 (en) | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
WO2008018398A1 (fr) | 2006-08-10 | 2008-02-14 | Nec Corporation | dispositif d'extraction de région d'objet |
US8266238B2 (en) | 2006-12-27 | 2012-09-11 | Intel Corporation | Memory mapped network access |
US8407428B2 (en) | 2010-05-20 | 2013-03-26 | Hicamp Systems, Inc. | Structured memory coprocessor |
US8656386B1 (en) | 2007-03-13 | 2014-02-18 | Parallels IP Holdings GmbH | Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file |
US8315984B2 (en) | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US7913046B2 (en) | 2007-08-06 | 2011-03-22 | Dell Global B.V. - Singapore Branch | Method for performing a snapshot in a distributed shared file system |
US7774568B2 (en) | 2007-08-13 | 2010-08-10 | Novell, Inc. | Clustered snapshots in networks |
US7877570B2 (en) | 2007-08-14 | 2011-01-25 | Red Hat, Inc. | Consolidation of matching memory pages |
US7941406B2 (en) | 2007-08-20 | 2011-05-10 | Novell, Inc. | Techniques for snapshotting |
US8209506B2 (en) | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
WO2009033074A2 (en) | 2007-09-05 | 2009-03-12 | Emc Corporation | De-duplication in virtualized server and virtualized storage environments |
US20090204718A1 (en) | 2008-02-08 | 2009-08-13 | Lawton Kevin P | Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication |
US20090204636A1 (en) | 2008-02-11 | 2009-08-13 | Microsoft Corporation | Multimodal object de-duplication |
US8082400B1 (en) | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
US8352940B2 (en) | 2008-06-09 | 2013-01-08 | International Business Machines Corporation | Virtual cluster proxy to virtual I/O server manager interface |
US7971027B2 (en) | 2008-06-09 | 2011-06-28 | International Business Machines Corporation | Mark page-out pages as critical for cooperative memory over-commitment |
US8041877B2 (en) | 2008-06-09 | 2011-10-18 | International Business Machines Corporation | Distributed computing utilizing virtual memory having a shared paging space |
US8234655B2 (en) | 2008-07-29 | 2012-07-31 | International Business Machines Corporation | Detection of duplicate memory pages across guest operating systems on a shared host |
US10642794B2 (en) | 2008-09-11 | 2020-05-05 | Vmware, Inc. | Computer storage deduplication |
JP2010191647A (ja) | 2009-02-18 | 2010-09-02 | Hitachi Ltd | ファイル共有システム、ファイルサーバ、ファイル管理方法 |
US9176883B2 (en) | 2009-04-30 | 2015-11-03 | HGST Netherlands B.V. | Storage of data reference blocks and deltas in different storage devices |
US8451281B2 (en) | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
EP2449469B1 (en) | 2009-06-29 | 2019-04-03 | Hewlett-Packard Enterprise Development LP | Hypervisor-based management of local and remote virtual memory pages |
WO2011023134A1 (en) | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
US20110055471A1 (en) | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
US8719547B2 (en) | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
US20120005207A1 (en) | 2010-07-01 | 2012-01-05 | Yahoo! Inc. | Method and system for web extraction |
US9104326B2 (en) | 2010-11-15 | 2015-08-11 | Emc Corporation | Scalable block data storage using content addressing |
US9152573B2 (en) | 2010-11-16 | 2015-10-06 | Vmware, Inc. | Sharing memory pages having regular expressions within a virtual machine |
JP5207088B2 (ja) | 2010-11-24 | 2013-06-12 | 株式会社Jvcケンウッド | アイテム選択装置、アイテム選択方法およびコンピュータプログラム |
US8364716B2 (en) | 2010-12-17 | 2013-01-29 | Netapp, Inc. | Methods and apparatus for incrementally computing similarity of data sources |
CN102567407B (zh) * | 2010-12-22 | 2014-07-16 | 北大方正集团有限公司 | 一种论坛回帖增量采集方法及系统 |
US8793427B2 (en) | 2011-02-10 | 2014-07-29 | Hewlett-Packard Development Company, L.P. | Remote memory for virtual machines |
US8943260B2 (en) | 2011-03-13 | 2015-01-27 | International Business Machines Corporation | Dynamic memory management in a virtualized computing environment |
US9189419B2 (en) | 2011-04-14 | 2015-11-17 | Vmware, Inc. | Detecting and suppressing redundant input-output operations |
US9047313B2 (en) | 2011-04-21 | 2015-06-02 | Red Hat Israel, Ltd. | Storing virtual machines on a file system in a distributed environment |
US8782003B1 (en) | 2011-05-13 | 2014-07-15 | Emc Corporation | Synchronization of storage using log files and snapshots |
US9619263B2 (en) | 2011-06-11 | 2017-04-11 | Microsoft Technology Licensing, Llc | Using cooperative greedy ballooning to reduce second level paging activity |
US8965937B2 (en) | 2011-09-28 | 2015-02-24 | International Business Machines Corporation | Automated selection of functions to reduce storage capacity based on performance requirements |
CA2890516C (en) | 2011-11-07 | 2018-11-27 | Nexgen Storage, Inc. | Primary data storage system with quality of service |
US8818951B1 (en) | 2011-12-29 | 2014-08-26 | Emc Corporation | Distributed file system having separate data and metadata and providing a consistent snapshot thereof |
JP2013143039A (ja) | 2012-01-11 | 2013-07-22 | Canon Inc | 頻出パターン抽出装置、頻出パターン抽出方法、及びプログラム |
CN103329111B (zh) | 2012-01-19 | 2015-05-27 | 华为技术有限公司 | 一种基于块存储的数据处理方法、装置及系统 |
WO2013118194A1 (en) | 2012-02-10 | 2013-08-15 | Hitachi, Ltd. | Storage system with virtual volume having data arranged astride storage devices, and volume management method |
WO2013128578A1 (ja) | 2012-02-28 | 2013-09-06 | 株式会社安川電機 | 制御装置および制御装置の制御方法 |
US8954698B2 (en) | 2012-04-13 | 2015-02-10 | International Business Machines Corporation | Switching optically connected memory |
US9753831B2 (en) | 2012-05-30 | 2017-09-05 | Red Hat Israel, Ltd. | Optimization of operating system and virtual machine monitor memory management |
US9940228B2 (en) | 2012-06-14 | 2018-04-10 | Vmware, Inc. | Proactive memory reclamation for java virtual machines |
US9565651B2 (en) * | 2012-07-11 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling paging delay with timing arrangements and dual page scans |
US8671445B1 (en) | 2012-07-17 | 2014-03-11 | Netapp, Inc. | Method and system for transferring replicated information from source storage to destination storage |
US9348538B2 (en) | 2012-10-18 | 2016-05-24 | Netapp, Inc. | Selective deduplication |
US9569310B2 (en) | 2013-02-27 | 2017-02-14 | Netapp, Inc. | System and method for a scalable crash-consistent snapshot operation |
KR101505263B1 (ko) | 2013-03-07 | 2015-03-24 | 포항공과대학교 산학협력단 | 데이터 중복 제거 방법 및 장치 |
US9729659B2 (en) | 2013-03-14 | 2017-08-08 | Microsoft Technology Licensing, Llc | Caching content addressable data chunks for storage virtualization |
US9213715B2 (en) | 2013-06-03 | 2015-12-15 | International Business Machines Corporation | De-duplication with partitioning advice and automation |
US9547600B2 (en) | 2013-07-30 | 2017-01-17 | Vmware, Inc. | Method and system for restoring consumed memory after memory consolidation |
US9342253B1 (en) | 2013-08-23 | 2016-05-17 | Nutanix, Inc. | Method and system for implementing performance tier de-duplication in a virtualization environment |
US9053068B2 (en) | 2013-09-25 | 2015-06-09 | Red Hat Israel, Ltd. | RDMA-based state transfer in virtual machine live migration |
US9183035B2 (en) | 2013-11-08 | 2015-11-10 | International Business Machines Corporation | Virtual machine migration with swap pages |
US20150234669A1 (en) | 2014-02-17 | 2015-08-20 | Strato Scale Ltd. | Memory resource sharing among multiple compute nodes |
US20150286414A1 (en) | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
WO2015150976A1 (en) | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Cluster-wide memory management using similarity-preserving signatures |
US20150288758A1 (en) | 2014-04-07 | 2015-10-08 | Strato Scale Ltd. | Volume-level snapshot management in a distributed storage system |
US20150312366A1 (en) | 2014-04-24 | 2015-10-29 | Strato Scale Ltd. | Unified caching of storage blocks and memory pages in a compute-node cluster |
US9330015B2 (en) * | 2014-06-11 | 2016-05-03 | Vmware, Inc. | Identification of low-activity large memory pages |
US9390028B2 (en) | 2014-10-19 | 2016-07-12 | Strato Scale Ltd. | Coordination between memory-saving mechanisms in computers that run virtual machines |
EP3210366B1 (en) | 2014-10-20 | 2021-04-28 | Hitachi Vantara LLC | Managing synchronized data protection operations at the nodes of a data system |
US20160132523A1 (en) | 2014-11-12 | 2016-05-12 | Strato Scale Ltd. | Exploiting node-local deduplication in distributed storage system |
-
2016
- 2016-01-27 EP EP16754814.8A patent/EP3126987A4/en not_active Withdrawn
- 2016-01-27 CN CN201680001017.6A patent/CN106233265A/zh active Pending
- 2016-01-27 WO PCT/IB2016/050396 patent/WO2016135570A1/en active Application Filing
- 2016-02-08 US US15/017,687 patent/US9971698B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102771084A (zh) * | 2009-12-23 | 2012-11-07 | 思杰系统有限公司 | 用于在多核gslb设备中管理静态邻近性的系统和方法 |
US20110271070A1 (en) * | 2010-04-30 | 2011-11-03 | Microsoft Corporation | Memory usage scanning |
US20120011504A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Online classification of memory pages based on activity level |
US20120246386A1 (en) * | 2011-03-25 | 2012-09-27 | Hitachi, Ltd. | Storage system and storage area allocation method |
US20130132696A1 (en) * | 2011-11-21 | 2013-05-23 | Hitachi, Ltd. | Storage system management apparatus and management method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112053733A (zh) * | 2019-06-05 | 2020-12-08 | 美光科技公司 | 故障敏感存储器页面的选择性加速取样 |
CN112053733B (zh) * | 2019-06-05 | 2024-06-04 | 美光科技公司 | 故障敏感存储器页面的选择性加速取样 |
Also Published As
Publication number | Publication date |
---|---|
EP3126987A4 (en) | 2017-11-22 |
WO2016135570A1 (en) | 2016-09-01 |
US9971698B2 (en) | 2018-05-15 |
EP3126987A1 (en) | 2017-02-08 |
US20160253265A1 (en) | 2016-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233265A (zh) | 将访问频率层次结构用于逐出目标的选择 | |
CN102103547B (zh) | 替换高速缓冲存储器中的高速缓存行 | |
US9594685B2 (en) | Criteria for selection of data for a secondary cache | |
CN105074673B (zh) | 用于数据存储系统的基于优先级的垃圾收集 | |
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、系统和设备 | |
US9015441B2 (en) | Memory usage scanning | |
CN100399301C (zh) | 大容量存储设备和用于动态管理大容量存储设备的方法 | |
CN109726139A (zh) | 存储器系统及控制方法 | |
CN105653591A (zh) | 一种工业实时数据分级存储及迁移方法 | |
CN104081364B (zh) | 合作高速缓存 | |
CN107003937A (zh) | 针对大型工作数据集的缓存优化技术 | |
CN105917318A (zh) | 用于实现基于ssd的i/o高速缓存的系统和方法 | |
US20140115241A1 (en) | Buffer management apparatus and method | |
KR102305834B1 (ko) | 이종 가상화 클라우드 캐시 환경에서의 동적 캐시분할 관리자 | |
CN105975402B (zh) | 一种混合内存环境下淘汰数据感知的缓存方法与系统 | |
CN102667736A (zh) | 存储器管理装置及存储器管理方法 | |
Wang et al. | Observational wear leveling: an efficient algorithm for flash memory management | |
US20130013866A1 (en) | Spatial locality monitor | |
US7752206B2 (en) | Method and data processing system for managing a mass storage system | |
Wang et al. | ADAPT: Efficient workload-sensitive flash management based on adaptation, prediction and aggregation | |
CN107810490A (zh) | 用于基于目录的缓存一致性的系统和方法 | |
US9699263B1 (en) | Automatic read and write acceleration of data accessed by virtual machines | |
US9747049B2 (en) | Computer memory management method and system | |
CN106484525B (zh) | 嵌入式系统 | |
CN117591441A (zh) | 电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161214 |