CN106104480A - 使用相似性保留签名的集群范围的内存管理 - Google Patents
使用相似性保留签名的集群范围的内存管理 Download PDFInfo
- Publication number
- CN106104480A CN106104480A CN201580016014.5A CN201580016014A CN106104480A CN 106104480 A CN106104480 A CN 106104480A CN 201580016014 A CN201580016014 A CN 201580016014A CN 106104480 A CN106104480 A CN 106104480A
- Authority
- CN
- China
- Prior art keywords
- memory block
- page
- calculating
- node
- signature
- 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
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
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)
Abstract
一种方法,包括在包括运行客户端(32)的一个或多个计算节点(24)的计算系统(20)中,定义内存块,每个内存块包括由相应的客户端访问的多个内存页。计算内存块中的一个或多个内存块的相应的相似性保留签名。基于相似性保留签名,作出第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页的识别。提高对所识别的第一内存块和第二内存块的访问的效率。
Description
相关申请的交叉引用
本申请要求提交于2014年4月3日的美国临时专利申请61/974,475的权益,其公开内容通过引用并入本文。
发明领域
本发明大体上涉及计算系统,并且具体地涉及用于计算系统中的内存管理的方法和系统。
发明概述
本文描述的本发明的实施例提供了一种方法,该方法包括在包括运行客户端的一个或多个计算节点的计算系统中,定义内存块,每个内存块包括由相应的客户端访问的多个内存页。计算内存块中的一个或多个内存块的相应的相似性保留签名。基于相似性保留签名,识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页。提高对所识别的第一内存块和第二内存块的访问的效率。
在一些实施例中,计算内存块的相似性保留签名包括计算在内存块的相应的内存页上的一组页签名。识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页可以包括识别第一内存块和第二内存块的相似性保留签名相差不超过给定数量的页签名。
在一些实施例中,提高访问的效率包括在第一内存块和第二内存块中查找相应具有相同内容的第一内存页和第二内存页,并且对第一内存页和第二内存页删除重复。查找具有相同内容的第一内存页和第二内存页可以包括将在第一内存页和第二内存页上计算的相应的第一哈希值和第二哈希值进行比较。
在实施例中,提高访问的效率包括将分别访问第一内存块和第二内存块的第一客户端和第二客户端放置在相同的计算节点上。在替换的实施例中,提高访问的效率包括将分别访问第一内存块和第二内存块的第一客户端和第二客户端放置在计算系统中彼此拓扑地相邻的第一计算节点和第二计算节点上。
在另一个实施例中,提高访问的效率包括在相同的计算节点上或在计算系统中彼此拓扑地相邻的第一计算节点和第二计算节点上放置第一内存块和第二内存块。在又一个实施例中,定义内存块包括将内存页分类为活动内存页和非活动内存页,并且在内存块中只包括非活动内存页。
根据本发明的实施例,本发明另外提供了一种计算系统,所述计算系统包括一个或多个计算节点,该计算节点包括相应的内存和相应的处理器。处理器被配置为运行访问存储在内存中的内存页的客户端,定义内存块,每个内存块包括由相应的客户端访问的多个内存页,计算内存块中的一个或多个内存块的相应的相似性保留签名,基于相似性保留签名,识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页,并且提高对所识别的第一内存块和第二内存块的访问的效率。
根据本发明的实施例,本发明还提供了一种计算机软件产品,该产品包括其中存储程序指令的有形非暂时性计算机可读介质,所述指令当由相应的计算节点的一个或多个处理器读取时促使处理器运行访问存储在计算节点的内存中的内存页的客户端,定义内存块,每个内存块包括由相应的客户端访问的多个内存页,计算内存块中的一个或多个内存块的相应的相似性保留签名,基于相似性保留签名,识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页,并且提高对所识别的第一内存块和第二内存块的访问的效率。
根据结合附图进行的本发明的实施例的以下详细描述,本发明将被更完全地理解,其中:
附图简述
图1是根据本发明的实施例示意性示出计算系统的框图;
图2是根据本发明的实施例示意性示出内存管理的数据结构的图;
图3是根据本发明的实施例示意性示出用于内存删除重复的方法的流程图;以及
图4是根据本发明的实施例示意性示出用于虚拟机放置的方法的流程图。
具体实施方式
概述
本文所描述的本发明的实施例提供用于管理计算系统中的内存资源的改进的方法和系统。在所公开的实施例中,计算系统包括运行客户端(例如,应用程序、虚拟机(VM)或操作系统进程)的一个或多个计算节点。
内存空间通常被划分为被称为内存页的大小相等的单元。客户端通过定位合适的内存页或页并且访问其中存储的内容来访问存储在内存中的内容。客户端可以访问在相同节点上或在其他节点上存储的内存页。
系统识别其中不同的客户端访问内存页的组或范围(在本文中被称为块)的情况,该内存页在内容中彼此相似。例如,该系统可以使各种事件相关联并且识别其中客户端访问内存页的组或范围的模式。通过适当的聚类,系统能够提高存储效率和整体性能。例如,系统可以对属于不同的块但具有相同内容的内存页删除重复,或者将使用相似内存块的客户端重定位到相同的计算节点或附近的节点。
每个存储块包括由某个客户端使用的不一定连续的多个内存页。如果内存块以至少一定的可能性可能在内容中相差不超过预定义的数量的内存页,内存块通常被认为是相似的。为了识别相似的内存块,系统计算并且存储关于每个内存块的各自的块签名,该块签名保留相似特性。在一个实施例中,块签名包括在块的各自内存页上计算的短页签名的列表。如果它们的块签名(页签名列表)可能相差不超过给定数量的页签名,块被认为是相似的。
在典型的实施例中,除了用于识别具有相同内容的内存页之间的精确匹配的机制,实施块相似性机制。例如,该系统可以计算并且存储每个内存页上的各自的哈希值(不要与是块签名的部分的页签名混淆)。在示例的删除重复过程中,该系统可以首先识别相似的内存块(使用块签名),并且然后在相似的块之内(使用哈希值)搜索要被删除重复的相同的内存页。
在该删除重复过程中,块相似性机制被用作识别可能包含大量的重复内存页的内存范围的快速的且在计算上有效的方式。所公开的删除重复过程是高度可伸缩的并且可以在系统的各个层次处执行,例如,给定的VM的应用程序或进程之间,在给定的计算节点上的VM之内或者在整个计算节点集群中。
因此,本文描述的方法和系统尤其是在大型计算节点集群中有利的,该大型计算节点集群的总内存大小为数百万亿字节或更多的数量级。然而,所公开的技术也适用于小型计算系统。
系统描述
图1是根据本发明的实施例示意性示出计算系统20的框图,该计算系统20包括多个计算节点24的集群。系统20可以包括,例如,数据中心、云计算系统、高性能计算(HPC)系统或任何其他合适的系统。
计算节点24(为简洁起见简称为“节点”)通常包括服务器,但可替换地包括任何其他合适类型的计算节点。系统20可以包括相同类型的或不同类型的任何合适数量的节点。在一些公开的技术中,系统甚至可以包括单个计算节点。节点24是通过通信网络28(通常是局域网(LAN))连接的。网络28可以根据任何合适的网络协议(诸如,以太网或Infiniband)操作。
每个节点24包括中央处理单元(CPU)44,也被称为处理器。根据计算节点的类型,CPU44可以包括多个处理核心和/或多个集成电路(IC)。不管具体的节点配置,节点的处理电路在本文中总体上被认为是节点CPU。每个节点24还包括内存40(通常是易失性随机存取存储器(RAM))以及用于与网络28进行通信的网络接口卡(NIC)48。一些节点24可以包括非易失性存储设备,诸如磁硬盘驱动器-HDD或固态-SSD(未在图中示出)。
通常,每个节点24运行一个或多个客户端。在本示例中,客户端包括虚拟机(VM)32,通过虚拟机管理器36向虚拟机(VM)32分配节点的物理资源(例如,CPU、内存和网络资源)。可替换地,然而,客户端可以包括例如,用户应用程序、操作系统进程或容器、或者任何其它合适类型的客户端。为了清楚起见,下面的描述指的是VM,但是所公开的技术可以以相似的方式与任何其它合适类型的客户端一起使用。
在图1中示出的系统和计算节点配置是示例配置,仅仅为了概念上清晰起见而被选择。在替换的实施例中,可使用任何其他合适的系统和/或节点配置。系统20的各种元素,尤其是节点24的元素,可以使用诸如在一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)中的硬件/固件来实施。可替换地,一些系统或节点元素(例如,CPU 44)可以在软件中或使用硬件/固件和软件元素的组合来实施。在一些实施例中,CPU 44包括在软件中编程以执行本文描述的功能的通用处理器。可经由网络以电子形式将软件下载到处理器,例如,或者所述软件可以可选地或附加地被提供和/或存储在非暂时性有形介质上,诸如磁存储器、光学存储器或电子存储器。
使用相似性保留签名的内存管理
在系统20中,每个VM访问(例如,读取和写入)存储在运行VM的节点24的内存40中和/或在一个或多个其它节点24的内存40中的内存页。在一些实施例中,系统20运行管理系统20的内存资源的节点页管理器(NPM)过程,并且具体地执行本文描述的技术。可以以分布式通过节点24的CPU 44、通过选择的CPU 44或者通过一些集中管理节点(未在图中示出)实施NPM过程(或为简洁起见只是NPM)。
在一些实施例中,NPM将由VM使用的内存页组成内存块,计算每个块的各自的相似性保留块签名,并且使用块签名用于提高访问相似的内存块的效率。每个内存块包括由某个VM 32使用的不一定连续的多个内存页。在一个实施例,每个页的大小是4KB并且每个内存块的大小是128MB。可替换地,可使用任何其他合适的块大小。块大小不需要一定是统一的或恒定的。
在一些实施例中,NPM将给定的VM的所有的内存页组成块。可替换地,然而,NPM可以只将VM的一些内存页组成块。例如,出于删除重复目的,NPM可以将VM的内存页分类成活动页(频繁被访问)和非活动页(如果有很少被访问),并且只将非活动页组成块。
对于每个块,NPM计算并且存储各自的块签名。块签名还被称为相似性保留签名,因为不同的块的块签名之间的比较指示块的内容之间的相似程度。通常,如果在内容中以至少预定义的可能性相差不超过预定义的数量的内存页,则NPM认为内存块是相似的。在一些实施例中,预定义的可能性是1,即,相似性是确定性的而不是统计的。
在不同的实施例中,NPM可以使用各种块签名。“相似性保留”特性通常意味着如果两个块是相似的(即,在内容中相差不超过预定义的数量的内存页),则它们的块签名将以至少预定义的概率彼此接近至少预定义的量。另外,如果两个块是不相似的(即,在内容中相差超过给定数量的内存页),则它们的块签名将以至少给定的概率彼此相差至少给定的量。通常,好的块签名快速计算和比较,并且占用少量的内存。
在一个实施例中,块签名包括在块的各自内存页上计算的短页签名的列表。如果它们的块签名(页签名列表)可能相差不超过给定数量的页签名,则NPM认为块是相似的,反之亦然。每个页签名可以包括对各自的页内容计算的短哈希值。
通常,页签名的大小小于用于页内容的精确匹配检测的哈希值的大小,因为前者具有不严格的精度要求。页哈希值应该以非常高的概率表示页内容,因为它们用于实际的删除重复决定。另一方面,块签名用于将NPM指向可能包含大量重复的页的存储区域(其将然后使用精确的页哈希值进行比较并且进行删除重复)。
在示例实施例中,在块签名中的每个页签名的大小是4个字节,而每个页哈希值的大小是20个字节。可替换地,然而,能够使用任何其它合适的大小。
NPM可以使用任何合适的计算方案(例如,使用滑动窗口和滚动哈希函数)来计算页签名。滚动哈希函数的一个可能的示例是Karp-Rabin签名。可替换地,然而,能够使用任何其它合适的相似性保留哈希函数。例如,由Martinez等人在2014年7月的2014国际安全与管理会议的会议录“State of the Art in Similarity Preserving Hashing Functions”中;和由Yu等人在2010年12月的第二届国际互联网多媒体计算与服务会议的会议录“Error-Correcting Output Hashing in Fast Similarity Search”中描述了示例技术,这两个文件通过引用并入本文。
图2是根据本发明的实施例示意性示出内存管理的数据结构60的图。数据结构60由NPM用于执行使用公开的相似性保留块签名的各种管理过程。
对于每个VM 32,数据结构60包括一个或多个条目62,每个条目指定各自的内存块。每个条目62包括在块的各自页上计算的多个页哈希值64以及相似性保留块签名68。在本示例中,块签名68包括短页签名的列表。
根据NPM过程的实施,数据结构60可以集中或分布在多个节点上。在一个实施例中,每个节点24计算关于由其VM使用的内存页和内存块的页哈希值64和块签名68。每个节点与该集群共享此信息,使得NPM过程能够访问整个数据结构60。
使用相似性保留块签名的示例内存管理方法
NPM过程可以使用本文描述的用于各种管理目的的块签名。通常,块签名被用作快速且有效的预筛选工具,该预筛选工具识别可能包含大量的重复内存页的存储区域。
图3是根据本发明的实施例示意性示出用于使用块签名的内存删除重复的方法的流程图。该方法开始于在签名计算步骤80处NPM计算每VM的页哈希值64和块签名68。
在相似性检测步骤84处,基于内存块的各自块签名68,NPM查找彼此相似的内存块。如果发现相似的块,则在删除重复步骤88处,NPM进行在相似的块中删除重复的至少一些内存页。通常,NPM使用页哈希值64来查找重复的内存页,即,在相似的块中具有相同的内容的对应的页。当使用该方法时,NPM将其删除重复的努力集中在相似的块,在相似的块中,发现重复的页的可能性高。
如上所述,图3的删除重复过程可以在节点(“节点内”)内或者跨多个节点(“节点间”)执行。节点间删除重复可以例如,使用分布式Bloom过滤器来执行。
图4是根据本发明的另一个实施例示意性示出用于使用块签名的VM放置的方法的流程图。图4的方法开始于在签名计算步骤90处NPM计算每VM的页哈希值64和块签名68。
在VM检查步骤94处,NPM识别访问相似的内存块的VM。如果发现这样的VM,NPM迁移这些VM中的一个或多个,使得在迁移后,VM被定位在相同的计算节点上。
由于几个原因,将访问相似的内存块的VM定位在相同的节点上是有利的。例如,删除重复可以在节点内而不是节点之间执行。此外,将更多的页本地定位在与访问VM相同的节点处减少了延迟和通信开销。
在替换的实施例中,NPM可能不一定将(访问相似的块的)VM迁移到相同的节点而是迁移到附近的节点。在此上下文中的术语“附近”指的是节点在系统20中拓扑上彼此相邻,例如,相互少于预定义的数量的网络跳数进行定位。
在其他实施例中,NPM可以迁移相似的块,以驻留在相同的节点上或至少在附近的节点上。代替VM的迁移或者除了VM的迁移外,可以执行块的迁移。
在替换的实施例中,NPM可以使用块签名,作为用于例如使用Bloom过滤器来产生VM内存的指纹或配置文件的快速且节省内存的装置。VM内存指纹能用于VM的比较和使用相似的内容的VM的识别。基于这样的识别,可以放置VM并且有效地共享内存。基于这样的指纹的VM放置可以甚至在没有实时VM的情况下通过使用之前活动的VM的指纹执行。
在一些实施例中,NPM可以定义块的层次结构或嵌套。在这样的实施例中,给定大小的块可以被组成较大、更高层次的块。这样的层次结构使得NPM能够执行快速的信息修剪。
虽然本文描述的实施例主要解决易失性存储资源的管理,但是本文描述的方法和系统还可以用于其它应用,诸如用于管理持久性存储。
因此,应理解上述实施例是通过实例引用的,且本发明并不限于上文已具体示出和描述的内容。相反,本发明的范围包括上文所描述的各种特征的组合和子组合,以及本领域技术人员在阅读以上描述之后将想到的且未在现有技术中公开的变型和修改。通过引用结合在本专利申请中的文档被视为本申请的组成部分,除了在这些结合的文档中的任何术语以与本说明书中明确地或隐含地作出的定义冲突方式定义时,仅应考虑本说明书中的定义。
Claims (19)
1.一种方法,包括:
在包括运行客户端的一个或多个计算节点的计算系统中,定义内存块,每个内存块包括由相应的客户端访问的多个内存页;
计算关于所述内存块中的一个或多个内存块的相应的相似性保留签名;
基于所述相似性保留签名,识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页;以及
提高对所识别的第一内存块和第二内存块的访问的效率。
2.根据权利要求1所述的方法,其中,计算内存块的相似性保留签名包括计算在所述内存块的相应的内存页上的一组页签名。
3.根据权利要求2所述的方法,其中,识别所述第一内存块和所述第二内存块以至少所述预定义的可能性在内容上相差不超过预定义的数量的内存页包括:识别所述第一内存块的相似性保留签名和所述第二内存块的相似性保留签名相差不超过给定数量的页签名。
4.根据权利要求1所述的方法,其中,提高访问的效率包括:在所述第一内存块和所述第二内存块中查找相应的具有相同内容的第一内存页和第二内存页,并且对所述第一内存页和所述第二内存页删除重复。
5.根据权利要求4所述的方法,其中,查找具有相同内容的所述第一内存页和所述第二内存页包括将在所述第一内存页和所述第二内存页上计算的相应的第一哈希值和第二哈希值进行比较。
6.根据权利要求1-5中任一项所述的方法,其中,提高访问的效率包括:将分别访问所述第一内存块和所述第二内存块的第一客户端和第二客户端放置在相同的计算节点上。
7.根据权利要求1-5中任一项所述的方法,其中,提高访问的效率包括将分别访问所述第一内存块和所述第二内存块的第一客户端和第二客户端放置在第一计算节点和第二计算节点上,所述第一计算节点和第二计算节点在所述计算系统中彼此拓扑地相邻。
8.根据权利要求1-5中任一项所述的方法,其中,提高访问的效率包括在相同的计算节点上或在所述计算系统中彼此拓扑地相邻的第一计算节点和第二计算节点上放置所述第一内存块和所述第二内存块。
9.根据权利要求1-5中任一项所述的方法,其中,定义所述内存块包括将所述内存页分类为活动内存页和非活动内存页,并且在所述内存块中只包括所述非活动内存页。
10.一种计算系统,其包括一个或多个计算节点,所述一个或多个计算节点包括相应的内存和相应的处理器,其中,所述处理器被配置为:运行访问存储在所述内存中的内存页的客户端;定义内存块,每个内存块包括由相应的客户端访问的多个内存页;计算所述内存块中的一个或多个内存块的相应的相似性保留签名;基于所述相似性保留签名,识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页;以及提高对所识别的第一内存块和第二内存块的访问的效率。
11.根据权利要求10所述的系统,其中,所述处理器被配置为通过计算在内存块的相应的内存页上的一组页签名来计算所述内存块的相似性保留签名。
12.根据权利要求11所述的系统,其中,所述处理器被配置为通过识别所述第一内存块的相似性保留签名和所述第二内存块的相似性保留签名相差不超过给定数量的页签名来识别所述第一内存块和所述第二内存块以至少所述预定义的可能性在内容上相差不超过预定义的数量的内存页。
13.根据权利要求10所述的系统,其中,所述处理器被配置为通过在所述第一内存块和所述第二内存块中查找相应的具有相同内容的第一内存页和第二内存页并且对所述第一内存页和所述第二内存页删除重复来提高访问的效率。
14.根据权利要求13所述的系统,其中,所述处理器被配置为通过将在所述第一内存页和所述第二内存页上计算的相应的第一哈希值和第二哈希值进行比较来查找具有相同内容的所述第一内存页和所述第二内存页。
15.根据权利要求10-14中任一项所述的系统,其中,所述处理器被配置为通过将分别访问所述第一内存块和所述第二内存块的第一客户端和第二客户端放置在相同的计算节点上来提高访问的效率。
16.根据权利要求10-14中任一项所述的系统,其中,所述处理器被配置为通过将分别访问所述第一内存块和所述第二内存块的第一客户端和第二客户端放置在所述计算系统中彼此拓扑地相邻的第一计算节点和第二计算节点上来提高访问的效率。
17.根据权利要求10-14中任一项所述的系统,其中,所述处理器被配置为通过在相同的计算节点上或在所述计算系统中彼此拓扑地相邻的第一计算节点和第二计算节点上放置所述第一内存块和所述第二内存块来提高访问的效率。
18.根据权利要求10-14中任一项所述的系统,其中,所述处理器被配置为将所述内存页分类为活动内存页和非活动内存页,以及在所述内存块中只包括所述非活动内存页。
19.一种计算机软件产品,所述产品包括其中存储了程序指令的有形非暂时性计算机可读介质,所述指令当由相应的计算节点的一个或多个处理器读取时促使所述处理器:运行访问存储在所述计算节点的内存中的内存页的客户端;定义内存块,每个内存块包括由相应的客户端访问的多个内存页;计算所述内存块中的一个或多个内存块的相应的相似性保留签名;基于所述相似性保留签名识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页;以及提高对所识别的第一内存块和第二内存块的访问的效率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461974475P | 2014-04-03 | 2014-04-03 | |
US61/974,475 | 2014-04-03 | ||
PCT/IB2015/052177 WO2015150976A1 (en) | 2014-04-03 | 2015-03-25 | Cluster-wide memory management using similarity-preserving signatures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106104480A true CN106104480A (zh) | 2016-11-09 |
Family
ID=54209807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580016014.5A Pending CN106104480A (zh) | 2014-04-03 | 2015-03-25 | 使用相似性保留签名的集群范围的内存管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9747051B2 (zh) |
EP (1) | EP3126984A4 (zh) |
CN (1) | CN106104480A (zh) |
WO (1) | WO2015150976A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019289A (zh) * | 2017-08-25 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及电子设备 |
CN112506877A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市木浪云数据有限公司 | 基于重删域的数据重删方法、装置、系统及存储设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
EP3126987A4 (en) | 2015-02-26 | 2017-11-22 | Strato Scale Ltd. | Using access-frequency hierarchy for selection of eviction destination |
US11372565B2 (en) * | 2020-10-27 | 2022-06-28 | EMC IP Holding Company LLC | Facilitating data reduction using weighted similarity digest |
US11593010B2 (en) * | 2021-02-26 | 2023-02-28 | Dell Products L.P. | Systems and methods for block-data clustering-based deduplication |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN101710323B (zh) * | 2008-09-11 | 2013-06-19 | 威睿公司 | 计算机存储去复制操作 |
Family Cites Families (71)
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 |
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 |
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 |
US8041877B2 (en) | 2008-06-09 | 2011-10-18 | International Business Machines Corporation | Distributed computing utilizing virtual memory having a shared paging space |
US7971027B2 (en) | 2008-06-09 | 2011-06-28 | International Business Machines Corporation | Mark page-out pages as critical for cooperative memory over-commitment |
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 |
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 |
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 |
US9015441B2 (en) | 2010-04-30 | 2015-04-21 | Microsoft Technology Licensing, Llc | Memory usage scanning |
US20120005207A1 (en) * | 2010-07-01 | 2012-01-05 | Yahoo! Inc. | Method and system for web extraction |
US9032398B2 (en) | 2010-07-12 | 2015-05-12 | Vmware, Inc. | Online classification of memory pages based on activity level represented by one or more bits |
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 |
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 |
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 |
US8671445B1 (en) | 2012-07-17 | 2014-03-11 | Netapp, Inc. | Method and system for transferring replicated information from source storage to destination storage |
US9569310B2 (en) | 2013-02-27 | 2017-02-14 | Netapp, Inc. | System and method for a scalable crash-consistent snapshot operation |
US9729659B2 (en) | 2013-03-14 | 2017-08-08 | Microsoft Technology Licensing, Llc | Caching content addressable data chunks for storage virtualization |
US9547600B2 (en) | 2013-07-30 | 2017-01-17 | Vmware, Inc. | Method and system for restoring consumed memory after memory consolidation |
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 |
US20150286414A1 (en) * | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
EP3210366B1 (en) | 2014-10-20 | 2021-04-28 | Hitachi Vantara LLC | Managing synchronized data protection operations at the nodes of a data system |
-
2015
- 2015-03-25 WO PCT/IB2015/052177 patent/WO2015150976A1/en active Application Filing
- 2015-03-25 CN CN201580016014.5A patent/CN106104480A/zh active Pending
- 2015-03-25 EP EP15773917.8A patent/EP3126984A4/en not_active Withdrawn
- 2015-03-30 US US14/672,466 patent/US9747051B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN101710323B (zh) * | 2008-09-11 | 2013-06-19 | 威睿公司 | 计算机存储去复制操作 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019289A (zh) * | 2017-08-25 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及电子设备 |
CN110019289B (zh) * | 2017-08-25 | 2023-10-03 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及电子设备 |
CN112506877A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市木浪云数据有限公司 | 基于重删域的数据重删方法、装置、系统及存储设备 |
CN112506877B (zh) * | 2020-12-03 | 2024-04-19 | 深圳市木浪云科技有限公司 | 基于重删域的数据重删方法、装置、系统及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US9747051B2 (en) | 2017-08-29 |
EP3126984A1 (en) | 2017-02-08 |
EP3126984A4 (en) | 2017-10-11 |
US20150286442A1 (en) | 2015-10-08 |
WO2015150976A1 (en) | 2015-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106104480A (zh) | 使用相似性保留签名的集群范围的内存管理 | |
Manzoor et al. | Fast memory-efficient anomaly detection in streaming heterogeneous graphs | |
Luo et al. | Finding time period-based most frequent path in big trajectory data | |
CN105630955B (zh) | 一种高效动态的数据集合成员管理方法 | |
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
EP2950507A1 (en) | Method and system for storing distributed graph data | |
EP2804114A1 (en) | Database controller, method, and program for managing a distributed data store | |
CN106126334A (zh) | 概率性重复数据删除感知的工作负载迁移 | |
CN105556474B (zh) | 管理数据操作的存储器和存储空间 | |
US11074516B2 (en) | Load balancing for distributed processing of deterministically assigned data using statistical analysis of block data | |
US10255325B2 (en) | Extreme value computation | |
CN111241350A (zh) | 图数据查询方法、装置、计算机设备和存储介质 | |
CN110062922A (zh) | 流处理系统和方法 | |
Aggarwal et al. | Gconnect: A connectivity index for massive disk-resident graphs | |
US9483560B2 (en) | Data analysis control | |
Waury et al. | Indexing trajectories for travel-time histogram retrieval | |
KR101902213B1 (ko) | 유사이미지 검색을 위한 해시코드 생성장치 및 방법 | |
KR101543841B1 (ko) | 멀티셋의 개별 원소의 개수를 카운팅하는 방법 및 시스템 | |
US11704339B2 (en) | Systems and methods for improving computational speed of planning by tracking dependencies in hypercubes | |
Shen et al. | Loyalty-based selection: Retrieving objects that persistently satisfy criteria | |
CN105224569B (zh) | 一种数据过滤、构造数据滤波器的方法及装置 | |
KR101543855B1 (ko) | 중복된 자료 개수의 근사치를 추정하는 방법 및 시스템 | |
US11003624B2 (en) | Incremental physical locality repair for live data | |
US10496511B2 (en) | Frequent items detection in data sets | |
CN106557573B (zh) | 基于目录索引结构的不规则三角网数据存储格式定义和数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20161109 |