CN106104480A - 使用相似性保留签名的集群范围的内存管理 - Google Patents

使用相似性保留签名的集群范围的内存管理 Download PDF

Info

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
Application number
CN201580016014.5A
Other languages
English (en)
Inventor
本诺特·纪尧姆·查尔斯·胡德奇亚
罗姆·弗雷曼
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.)
Stratos Calle Co Ltd
Strato Scale Ltd
Original Assignee
Stratos Calle Co Ltd
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 Stratos Calle Co Ltd filed Critical Stratos Calle Co Ltd
Publication of CN106104480A publication Critical patent/CN106104480A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual 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.一种计算机软件产品,所述产品包括其中存储了程序指令的有形非暂时性计算机可读介质,所述指令当由相应的计算节点的一个或多个处理器读取时促使所述处理器:运行访问存储在所述计算节点的内存中的内存页的客户端;定义内存块,每个内存块包括由相应的客户端访问的多个内存页;计算所述内存块中的一个或多个内存块的相应的相似性保留签名;基于所述相似性保留签名识别第一内存块和第二内存块以至少预定义的可能性在内容上相差不超过预定义的数量的内存页;以及提高对所识别的第一内存块和第二内存块的访问的效率。
CN201580016014.5A 2014-04-03 2015-03-25 使用相似性保留签名的集群范围的内存管理 Pending CN106104480A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CN106233265A (zh) 2015-02-26 2016-12-14 斯特拉托斯卡莱有限公司 将访问频率层次结构用于逐出目标的选择
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP1792256B1 (en) 2004-09-03 2018-03-07 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
US8355569B2 (en) * 2006-08-10 2013-01-15 Nec Corporation Object region extracting device
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
CN102880626B (zh) 2007-09-05 2016-02-10 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
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
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
US8352940B2 (en) 2008-06-09 2013-01-08 International Business Machines Corporation Virtual cluster proxy to virtual I/O server manager interface
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 华为技术有限公司 一种基于块存储的数据处理方法、装置及***
US9098200B2 (en) 2012-02-10 2015-08-04 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
US11030056B2 (en) 2014-10-20 2021-06-08 Hitachi Vantara Llc Data system for managing synchronized data protection operations at nodes of the data system, source node and destination node, and computer program product for use in such data system

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP3126984A1 (en) 2017-02-08
US9747051B2 (en) 2017-08-29
US20150286442A1 (en) 2015-10-08
WO2015150976A1 (en) 2015-10-08
EP3126984A4 (en) 2017-10-11

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) 概率性重复数据删除感知的工作负载迁移
US11074516B2 (en) Load balancing for distributed processing of deterministically assigned data using statistical analysis of block data
US10915534B2 (en) Extreme value computation
CN104978324A (zh) 一种数据处理方法和装置
GB2498762A (en) Computing user traffic at the website based on user actions
CN111241350A (zh) 图数据查询方法、装置、计算机设备和存储介质
CN110062922A (zh) 流处理***和方法
US20110202511A1 (en) Graph searching
Franke et al. ScaDS research on scalable privacy-preserving record linkage
CN106569734A (zh) 数据洗牌时内存溢出的修复方法及装置
US20150039598A1 (en) Data analysis control
Waury et al. Indexing trajectories for travel-time histogram retrieval
KR101902213B1 (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
CN109474712A (zh) 一种ip地理信息确定方法、服务器及存储介质
KR101543855B1 (ko) 중복된 자료 개수의 근사치를 추정하는 방법 및 시스템
US11003624B2 (en) Incremental physical locality repair for live data

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