CN101710324A - 使用标准块和标准块标识符的文件传送 - Google Patents
使用标准块和标准块标识符的文件传送 Download PDFInfo
- Publication number
- CN101710324A CN101710324A CN200910157456A CN200910157456A CN101710324A CN 101710324 A CN101710324 A CN 101710324A CN 200910157456 A CN200910157456 A CN 200910157456A CN 200910157456 A CN200910157456 A CN 200910157456A CN 101710324 A CN101710324 A CN 101710324A
- Authority
- CN
- China
- Prior art keywords
- cryptographic hash
- file
- sbid
- piece
- treatment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000002203 pretreatment Methods 0.000 claims description 44
- 230000006835 compression Effects 0.000 claims description 29
- 238000007906 compression Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 23
- 230000008878 coupling Effects 0.000 claims description 12
- 238000010168 coupling process Methods 0.000 claims description 12
- 238000005859 coupling reaction Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000000295 complement effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 239000004606 Fillers/Extenders Substances 0.000 description 5
- 230000006837 decompression Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003638 chemical reducing agent Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- PTQMMNYJKCSPET-OMHQDGTGSA-N mibolerone Chemical compound C1C[C@]2(C)[C@](O)(C)CC[C@H]2[C@@H]2[C@H](C)CC3=CC(=O)CC[C@@H]3[C@H]21 PTQMMNYJKCSPET-OMHQDGTGSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
与从源系统向目标系统传送诸如虚拟机图像文件的大原始文件不同,原始文件被编码以定义被传送的格式文件。格式随后被解码以在目标系统上产生原始文件的复制件。编码涉及标识出原始文件中的标准块,并且在格式中包括用于标准块的标准块标识符以代替原始块。解码涉及与标准块标识符服务器系统进行交换,标准块标识符服务器系统响应于接收到的标准块标识符而提供标准块。
Description
技术领域
本发明一般地涉及使用标准块和标准块标识符的文件传送。
背景技术
包括一个或多个客户操作系统和应用程序的虚拟机可以由虚拟机图像文件表示。因此,虚拟机可以使用传统文件操作(复制、移动、拷贝与粘贴)进行克隆和传送。
每个虚拟机在虚拟机图像文件中是自持的。该文件驻留在宿主机器上。虚拟机图像文件可以通过网络被拷贝和传送。如果机器必须从一个物理位置移动到另一物理位置,那么仅需要通过计算机网络将虚拟机图像文件从第一位置处的宿主机器拷贝到第二位置处的另一宿主机器。然而,由于虚拟机图像文件非常大,拷贝虚拟机图像需要高带宽连接并且可能花费非常长的时间。
尽管每个虚拟机图像文件可能需要千兆字节的空间进行存储,但是这些虚拟机文件中的大量内容是相同的。这是因为现今的软件和操作系统是单一种源的。仅有几个操作系统的变体,例如Windows XPTM、Windows VistaTM、和Redhat TM Linux。此外,少量应用占用每个机器上大部分的应用程序组。因此,注意到当虚拟机图像文件被从一个位置向另一位置拷贝时,拷贝的大多数信息已经存在于目的地处的其它虚拟机文件中。
本申请要求了于2008年9月4日递交的美国临时申请No.61/094,215的权益。
发明内容
根据第一方面,本发明提供了一种系统,包括:SBID至S块转换器,用于响应于通过网络从目标系统接收的标准块标识符,通过所述网络向所述目标系统返回相应标准数据块的版本,所述SBID至块转换器存储多个标准数据块的版本以及从所述标准数据块的相应拷贝生成的标准哈希值,所述SBID至块转换器将相应的标准块标识符与所述标准数据块的相应一种相关联。所述系统还包括哈希值至SBID转换器,用于响应于所述哈希值至SBID转换器从所述源系统接收到与从所述标准数据块的第一种生成的第一标准哈希值相匹配的第一文件哈希值,通过所述网络向源系统返回用于所述第一标准数据块的第一标准块标识符。
根据第二方面,本发明提供了一种方法,包括:在源系统上将原始文件转换为原始块;从所述原始块生成文件哈希值;将所述文件哈希值中的一些通过网络传输到SBID服务器系统;区分匹配从标准块生成的标准哈希值的文件哈希值以及不匹配所述标准哈希值的那些文件哈希值;对于匹配标准哈希值的所述文件哈希值的每一个,将相应的标准块标识符返回到所述源系统;生成包括所述标准块标识符的格式文件;以及通过所述网络将所述格式文件传送到目标系统。
根据第三方面,本发明提供了一种包括计算机可读存储介质的制品,所述就计算机可读存储介质编码有计算机可执行指令的程序和标准数据块,所述程序包括以下步骤:将原始文件划分成未压缩的文件块;压缩所述未压缩的文件块以产生压缩文件块;从所述压缩文件块生成文件哈希值;对于所述文件哈希值中的每个,当其变成当前处理的哈希值时,确定它是否匹配在关联先前处理的文件哈希值与文件块标识符的表中的条目中表示的先前处理的文件哈希值;在当前处理的文件哈希值匹配先前处理的文件哈希值的情况下,将用于当前处理的文件哈希值的文件块标识符与用于匹配的先前处理的文件哈希值的文件块标识符相关联,以及在当前处理的文件哈希值不匹配先前处理的文件哈希值的情况下,将当前处理的文件哈希值传输到SBID服务器系统,并且如果从所述SBID服务器系统返回了指示该哈希值对应于标准块的SBID,则将该SBID包括在所述格式文件中。
附图说明
图1是根据本发明实施例的计算机系统的网络系统的简要示图。
图2是在图1的网络系统中使用的格式文件和文件块表的简要示图。
图3是图1的网络系统中的文件编码器的简要示图。
图4是图1的网络系统中的文件解码器的简要示图。
图5是根据本发明的图1的网络系统上下文中实现的方法的流程图。
图6是图5方法的编码步骤的流程图。
图7是图5方法的解码步骤的流程图。
图8是根据本发明的另一网络系统的简要示图。
在附图中:“B块”是文件被划分成的多个块中的一个;“C块”是B块的压缩版本;并且“D块”是C块的解压缩版本。“B哈希值”是从B块直接生成的哈希值;C哈希值是从C块生成的哈希值;“CQ哈希值”是通过网络传输的“查询”C哈希值,而“CR哈希值”是与先前生成的CQ哈希值相匹配的(非CQ哈希值)“引用”C哈希值。“FBID”代表“文件块标识符”;每个B块、C块、D块、B哈希值、C哈希值、CQ哈希值和CR哈希值对应于各自的FBID。“SU块”是已经分配标准块标识符(SBID)的未压缩的标准块。“S块”是SU块的压缩版本。
具体实施方式
本发明通过替换将被传送的文件的至少一些块的标准块标识符(SBID)来解决这些以及相关问题。更具体地说,原始文件被划分成文件块;这些块被压缩,并且文件哈希值从文件块生成并且与从预先存在的标准块集生成的“标准”哈希值相比较。包括用于匹配非匹配文件块的压缩版本和文件块的SBID的格式文件(recipe file)被从源系统传送到目标系统。部分通过交换传送的SBID以得到他们所代表的标准块,在目标系统上构建原始文件的复制件。尽管可以传送多种文件类型,这种基于SBID的方法对于虚拟机来说特别适用。虚拟机通常共享常用主机和客户软件,所以共享数据块是相对普遍的。而且,由于虚拟机盘(vmdk)文件是文件系统的图像,所以来自文件系统的块趋向于良好对准。
图1中简要示出了根据本发明的网络系统AP1。一般而言,本发明适用于多种网络系统,包括局域网(LAN)、广域网(WAN)、因特网、以及他们的组合。网络系统AP1包括并且描述了源系统11、目标系统13以及标准块标识符(SBID)服务器系统15之间的连接。通常,本发明描述的源系统、目标系统和SBID服务器系统是个体计算机或者他们是计算机的网络。在本发明的一些实施例中,源、目标和SBID服务器系统中的两个或多个运行在相同计算机的各自资源上。
这里关注的目标是从源系统11上的原始虚拟机图像文件19在目标系统13上创建复制的虚拟机图像文件17。为此目的,源系统11的编码器21对相对大的原始文件19进行编码以在源系统11上产生相对小的格式文件23。源系统11上的格式文件23被传送(而非原始文件19)到目标系统13。目标系统13上的解码器对格式文件23进行解码以生成复制文件17。
格式文件23可以包括“标准块标识符”或“SBID”29。SBID 29代表相应的未压缩标准块或“SU块”30,并且进而代表存储在标准块存储装置32中的那些块的压缩版本,即,压缩标准块或“S块”31。解码器27将SBID33从格式文件23通过网络系统AP1传输到SBID服务器系统5,其中SBID33由SBID至S块转换器35接收。转换器35包括存储装置31和将SBID值映射到S块31的SBID至S块表37。对于从目标系统13接收的每个SBID值,SBID服务器系统15返回对应S块的版本。在图示的实施例中,S块是未压缩标准SU块30的压缩版本。另一实施例描述了未压缩标准块的存储和/或传输。例如,标准块可以以未压缩格式存储,并且随后被压缩用以进行传输。
源系统编码器21负责在格式文件23中包括SBID。编码器21将原始文件19划分成文件块,例如B块,并且从这些块生成哈希值,例如C哈希值。在图示的实施例中,编码器21首先压缩块,然后从压缩块生成哈希值。在另一实施例中,哈希值是直接从未压缩文件块生成的。至少这些哈希值中的一些,例如CQ哈希值39是通过网络系统AP1被传输到SBID服务器系统15的。SBID服务器系统15包括S哈希值至SBID转换器41,S哈希值至SBID转换器41进一步包括将S哈希值44映射到SBID 29的S哈希值至SBID表43。
在图示的实施例中,S哈希值是从S块生成的;在另一实施例中,哈希值是从SU块生成的,其中SU块是S块的未压缩版本。当转换器41从源系统11接收CQ哈希值时,转换器41进行检查以确定CQ哈希值是否匹配表43中的S哈希值。如果存在匹配,那么转换器41将关联的SBID 45返回到编码器21。再这种情况下,从其生成了匹配CQ哈希值的块与标准块相同。如果进入的CQ哈希值没有匹配表43中的S哈希值条目,那么转换器41向编码器21返回“未命中”指示,代表从其生成了CQ哈希值的块不匹配任何标准块的情形。方便的是,诸如SBID=0的SBID值可以预留用做“未命中”指示。编码器21在格式文件23中存储每个返回的SBID 45。编码器21还在格式文件23中存储发生SBID未命中的块的压缩版本。
图2更详细地描述了格式文件23。格式文件23的主体被C块所消耗,其中C块是B块的压缩版本,而B块是由编码器21对原始文件19进行划分而得到的。由于C块是经压缩的,并且尺寸会变化,因此对于每个存储在格式文件23中的C块,相应的C块长度51在格式文件23中进行规定。在另一实施例中,压缩块的尺寸在块自身中进行规定。
并非所有C块都包括在格式文件23中。与C哈希值而非CQ哈希值相关联的C块以及匹配S哈希值的C块未被包括在格式文件23中。然而,所有C块都在C块表53中描述,其压缩拷贝55被包括在格式文件23中。此外,格式文件23规定表53的实际(未压缩)块表尺寸57、压缩C块表55的尺寸58、以及压缩C块表55的偏移位置59。
每个B块被分配文件块标识符或“FBID”B01-B99(为说明目的,示出的FBID的范围在B01-B99,尽管在实践中,将需要更大的FBID值来处理虚拟机图像文件数以百万计的B块)。这些FBID还被用做关键字字段以标识C块表53中的相应条目。与表53中的每个FBID相关联的是相应的位置类型和相应的位置值。三种类型的位置被区分。SBID类型位置由SBID定义,偏移类型位置由格式文件23内的偏移定义,并且引用(reference)类型位置由对FBID的引用定义的。在一个实施例中,对于与SBID相关联的FBID,解码器27将把SBID传输到SBID服务器系统15,并且使用返回的S块34来生成复制文件17。对于与偏移相关联的FBID,解码器27将使用格式文件23中处于该偏移处的C块来生成复制文件17。
对于与引用值相关联的FBID,引用值指的是不同的FBID,例如与SBID类型位置相关联的FBID或者与偏移类型位置相关联的FBID。对于对SBID类型位置的间接引用的示例,在图2中,FBID B03具有对FBID B01的引用类型位置引用,其中FBID B01具有对SBID=10的SBID类型引用。解码器27将与SBID=10相关联的S块(或那个S块的解压缩版本)与FBID B03相关联以生成复制文件17。对于对偏移类型位置的间接引用的示例,FBIDB04与引用类型位置B02相关联。解码器27将FBID B04与FBID B02所指的偏移位置处的C块相关联。
图3中更详细描述了编码器21。编码器21包括分块器(chunker)61。分块器61用于将原始虚拟机图像文件19分成包括标准尺寸的B块63在内的未压缩B块。B块的尺寸(本图示例子中是4kB)是更可能匹配的较小尺寸和更难于管理的较大尺寸之间的折衷。在其他实施例中,基于系统性能的优化可以为B块分配不同的尺寸,并且对于不同的块尺寸可以不同。根据B块在原始文件19中的位置,每个B块被分配FBID B01-B99。
编码器21的块压缩器54压缩B块63以生成压缩的“C块”65。每个C块与源B块的FBID相关联。通常,B块在其能够被压缩的程度方面有所不同。在一个实施例中,C块具有不同的尺寸。
编码器21的哈希值生成器71生成哈希值,即C哈希值69。每个FBID因此具有对应的C哈希值。在图示的实施例中,C哈希值是直接从C块生成的,因此是间接从B块生成的。在另一实施例中,B哈希值是直接从B块生成的。在后一个实施例中,代表标准块的哈希值是从那些块的未压缩版本生成的。
哈希值生成器71使用生成256位哈希值的SHA-2算法,又被称为“指纹”、“签名”和“文摘”,因此与4kB值形成对照,比较是在32字节值之间进行的。具有不同哈希值的两个块必定不同。SHA-2哈希值是抗冲突的(collision resistant),因此不太可能具有相同哈希值的两个块会不同。为了防止错配的任何可能,可以使用整个块的逐位比较来确认哈希值的比较所指示的匹配。SHA-2哈希值还具有与安全性相关的加密属性,这使得很难从其哈希值确定块。另一实施例使用其他哈希算法,例如SHA-1和MD5。
编码器21的哈希值管理器75处理C哈希值73。在图示的实施例中,C哈希值被顺序处理。另一实施例以并行方式处理哈希值的组以提高性能。对于每个C哈希值,哈希值管理器75确定其是否匹配哈希值表79中的CQ哈希值77之一。对于将被处理的第一C哈希值,哈希值表79为空,从而发生未命中。如果发生未命中,哈希值管理器75将不匹配的C哈希值的压缩查询CQ哈希值拷贝传输到SBID服务器系统15。在图3中,该功能由门81表示,其中门81由未命中指示使能,并且由“非未命中”或“命中”指示禁用。并且,哈希值管理器75将CQ哈希值输入哈希值表79,将其与源C哈希值的FBID相关联。在第一C哈希值的情形中,该FBID是B01。
对于哈希值管理器75处理的第二和后续C哈希值,命中或未命中是可能的。如上所述,对于未命中的情形,CQ哈希值被传输并且对应的条目被添加到哈希值表79。对于命中的情形,没有CQ哈希值被传输或者被输入到哈希值表79。非CQ C哈希值这里被称为“压缩引用哈希值”或“CR哈希值”。编码器21的C块表生成器81将匹配CQ哈希值的FBID与C块表53中的CR哈希值条目的FBID相关联。
当编码器21将CQ哈希值传输到SBID服务器系统15时,将返回正的SBID或者“未命中”指示(SBID=0)。对于返回正的SBID的情形,认为关联的CQ块与相应的S块相同。因此,C块表发生器81将SBID与C块表53中处理的CQ哈希值的FBID相关联。
对于返回未命中指示(SBID=0)的情形,关联的C块没有匹配S块并且不能由SBID表示。因此,编码器21的格式生成器83在格式文件23内的相应偏移位置处(例如,偏移位置Q02)包括格式文件23中不匹配的C块。C块表生成器81随后将该偏移位置与被处理的CQ哈希值的FBID相关联。由于压缩文件具有不同的尺寸,格式生成器83将每个非标准CQ块与长度规范51(图2)相关联,从而格式文件23中下一项目的开始位置可以被容易地计算。
一旦所有FBID均被处理,则编码器21的表压缩器85压缩C块表53以产生压缩C块表55(图2)。格式生成器83随后将压缩C块表55连同用于压缩C块表55的实际(未压缩)尺寸规范57、压缩表尺寸规范58以及偏移位置规范59一起插入格式文件23中。所得的格式文件23随后被从源系统11传送到目标系统13,其在这里被称为格式文件23。
解码器27包括C块表扩展器91,C块表扩展器91用于扩展格式文件的压缩C块表55以在目标系统13上产生C块表92,该C块表92是源系统11上的C块表53的复制件。解码器27的C块表解析器93顺序处理表条目。对于与SBID相关联的FBID,解析器93利用SBID服务器系统15来交换SBID以得到其所代表的S块。返回的S块由块扩展器94扩展以产生“解压缩块”或“D块”95。解码器27的文件汇编器96将D块插入复制文件17中。
对于与格式文件偏移相关联的FBID,表解析器93从格式文件23提取关联C块,并且将其提供给块扩展器94。块扩展器94生成解压缩D块,其中所述解压缩D块被文件汇编器96插入到复制文件17中。对于与先前处理的FBID相关联的FBID,解析器93将先前处理的FBID的标识传送到文件汇编器96。文件汇编器96随后将关联D块的拷贝插入到与当前处理的FBID相关联的文件位置中。
图5中以流程图的方式示出了本发明的编码-传送-解码方法ME1。步骤S1包括在源系统上对虚拟机图像文件进行编码以产生包括SBID的格式文件。步骤S2包括将格式文件从源系统通过网络传送到目标系统。步骤S3包括对格式文件进行解码以产生与原始虚拟机图像文件19相同的复制虚拟机图像文件17。
图6中以流程图的方式更详细地示出了编码步骤S1。在步骤S11,分块器61将原始文件19划分成未压缩的B块。在图示的实施例中,源系统11上的文件系统将原始文件19存储为4kB的块,并且这些预先存在的块变成B块。在另一实施例中,现有块划分被忽略并且这个划分步骤S11创建新块。在任何一种情形中,B块可以被分配相应的顺序FBID B01-B99。
在步骤S12,B块被压缩以产生相应的压缩C块。在另一实施例中,原始文件被存储为一组压缩块,因为没有使用单独的块压缩步骤。
在步骤S13,为B块版本之一进行哈希运算。在图示的实施例中,从C块计算C哈希值。在另一些实施例中,哈希值是直接从预压缩或未压缩的B块生成的。每个C哈希值与关联于B块的FBID相关联,其中C哈希值从所述B块直接或间接生成。
从步骤S14开始,操作在逻辑上由FBID安排。在图示的实施例中,块和哈希值以他们FBID的顺序被处理,例如,具有FBID B01的C哈希值在具有FBID B02的C哈希值之前被处理。在另一实施例中,C哈希值被成组布置,并且每个组内的哈希值被并行处理。在这些并行实施例中的一些实施例中,采取措施从而尽管是对哈希值的并行处理也能获得与顺序处理相关联的排序效果。
在步骤S14,确定当前处理的C哈希值是否匹配先前处理的C哈希值。在图示的实施例中,通过将当前哈希值输入哈希值表79(其初始为空)作出该确定。因此,对于与FBID B01相关联的第一C哈希值,找不到匹配,其因而被识别为CQ哈希值。当找不到匹配的时候,在步骤S15向表79添加新条目,从而将FBID B01与当前CQ哈希值相关联的条目被加入表79。并且,在步骤S16,非匹配的CQ哈希值被传输到SBID服务器系统15。
在步骤S17,服务器系统15确定接收到的CQ哈希值是否匹配S哈希值至SBID表43中的S哈希值。在与FBID B01相关联的CQ哈希值的情形中,找到与S哈希值的匹配。这意味着与FBID B01相关联的B块匹配标准SU块。从而,目标系统13将能够从SBID服务器系统15获取S块,而非从源系统11获取C块。在图示的实施例中,标准块以压缩的形式存储,因此实际匹配是在C块和S块之间的。
在步骤S18,响应于S哈希值匹配,SBID服务器系统15将SBID返回到源系统11。在步骤S19,返回的SBID与块表53中的匹配CQ哈希值的FBID相关联。
如果在步骤S17,当前CQ哈希值不匹配S哈希值,那么在步骤S20处SBID服务器15向源系统11返回“未命中”指示。在图示的实施例中,SBID值为零被预留作为未命中指示。在步骤S21,当前C块被写入格式文件23中的偏移位置。在步骤S22,偏移位置与块表53中的当前FBID相关联。因此,由于与FBID B02相关联的CQ哈希值没有匹配S哈希值,所以格式文件23中的关联CQ块的偏移值与块表53中的当前FBID相关联。
在步骤S14,只有当前C哈希值没能匹配哈希值表79中的条目时,CQ哈希值才从当前C哈希值生成。如果当前C哈希值匹配表79中的哈希值,那么当前C哈希值与先前处理的C哈希值相同。假定上,对应的文件块也匹配。因此,在步骤S23在块表79中作出对与先前处理的CQ哈希值相对应的块的引用。换句话说,先前处理的CQ哈希值的FBID的引用类型条目与表79中的当前FBID相关联。
例如,具有FBID B03的CR哈希值匹配哈希值表79中与FBID B01相关联的CQ哈希值。从而,与FBID B01相关联的SBID间接与块表53中的FBID B03相关联。对于另一示例,具有FBID B04的CR哈希值匹配哈希值表79中与FBID B02相关联的CQ哈希值。从而,与FBID B02相关联的C块将凭借块表53而间接与FBID B04相关联。一旦所有C哈希值被处理(步骤S14-S23),则在步骤S24处块表53被压缩以产生压缩块表55,压缩块表55被插入格式文件23。在步骤S2(图5)格式文件23随后被传送到目标系统13。
图7中以流程图的方式详细描述了解码步骤S3。在步骤S31,格式文件23中的压缩C块表55被解压缩以产生C块表92,其是C块表53的复制件。在一个实施例中,C块表53存储格式中存储的C块的FBID、SBID和偏移。在步骤S32,解析器93以FBID的顺序解析C块表92。对C块表条目的进一步处理取决于条目类型,如步骤S33处所确定的那样。
对于SBID类型条目的情形,在步骤S34处交换SBID以得到S块。特别地,目标系统13将SBID传输到SBID服务器系统15,SBID服务器系统15返回S块以与当前FBID相关联。该S块在步骤S35处被解压缩以产生解压缩“D块”。该D块在步骤S36处被插入复制虚拟机图像文件。
对于偏移条目的情形,在步骤S37处对格式文件23中的引用偏移位置处的C块进行解压缩以产生D块,D块被插入复制文件17中。对于引用条目的情形,作出先前解压缩的D块的拷贝;该拷贝随后被插入复制文件17中。对于间接文件的情形,这可以简单意味着复制块指针被插入文件的元数据中。一旦表92的所有条目已被处理,那么复制虚拟机图像文件17完成。
第二网络系统AP2包括源系统201、目标系统203以及分布式SBID服务器系统205。源系统201包括用于从原始文件211生成格式209的编码器207。目标系统203包括用于从格式209生成与原始文件211相同的复制文件215的解码器213,其中格式文件209是从原始系统201传送到目标系统203的格式209的拷贝。SBID服务器系统205包括两个SBID服务器221和223,SBID服务器221和223实质上彼此相同,并且与网络系统AP1的SBID服务器系统15实质上相同。
网络系统AP2提供源系统201和目标系统203之间相对慢的因特网连接225。格式文件209正是通过这个因特网连接225而从源系统201传送到目标系统203以产生格式文件209。网络系统AP2还提供:1)在编码器207和SBID服务器221之间相对快的局域网(LAN)连接227;以及2)在解码器213和SBID服务器223之间相对快的LAN连接229。这意味着编码器207的SBID请求将被快速满足,并且更为重要的是,解码器213的S块请求被快速满足。因此,系统AP2不仅将源系统201从必须传送标准块释放出来,并且还提供了比源系统201所能提供的更快的标准块传送。因此,与在系统AP1环境中相比,在系统AP2环境中,图6中的步骤S16-S18以及图7中的步骤S34可以更高速执行。
系统AP2还包括计算机可读存储介质300形式的制品,其上编码有在系统AP1或AP2上实现方法ME1所需的计算机可执行指令的所有数据和程序,包括编码器、解码器、转换器、原始文件、以及生成的复制文件和格式文件。
还可以通过让源系统或目标系统或两者记录其系统上表示的标准块而采用利用本地化SBID服务器的策略。从而,当SBID返回源系统的时候,源系统可以维护将该SBID映射到对应B块的SBID表。类似地,当目标系统接收S块时,其可以记录用来获取S块的SBID以及最终D块的位置。下一次需要SBID或需要S块的时候,可以检查本地SBID表,并且如果发生命中,那么将省略与SBID服务器系统的交换。
在一些实施例中使用了加密技术。例如,格式文件可以包括压缩文件块的加密版本,并且SBID服务器系统可以存储和/或传输标准块的加密版本。文件哈希值可以从文件块的任何版本生成,并且标准哈希值可以从标准块的任何版本生成。在一些实施例中,生成标准哈希值的版本与返回到目标系统的S块的版本不相同。从文件或标准块的任何版本直接生成的标准哈希值或文件被认为是从标准或文件块(直接或间接)生成的。
如本领域普通技术人员将能理解的,并且如上面的说明书所解释的,本发明提供了多种替代性实施例。对所示实施例这样或那样的变化和修改可以由本发明提供,本发明的范围由权利要求限定。
尽管为了理解的清晰已经比较详细地描述了本发明的一个或多个实施例,但是很明显在权利要求的范围内可以进行一些修改和改变。因此,所描述的实施例应被认为仅是示例性的而非限制性的,权利要求的范围不受这里给出的细节的限制,而是可以在权利要求的范围和等同物之内进行修改。在权利要求中,元素和/或步骤并不暗示操作的任何特定顺序,除非在权利要求中有明确陈述。
此外,尽管所描述的虚拟化方法通常认为虚拟机呈现与特定硬件系统一致的接口,但是本领域普通技术人员将意识到,所描述的方法可以结合并非直接对应于任何特定硬件系统的虚拟化而使用。可以预想根据多种实施例被实现为主实施例、非主实施例或者想要模糊二者区别的实施例的虚拟化系统。此外,多种虚拟化操作可以全部或部分以硬件实现。例如,硬件实现可以使用查找表用于修改存储装置访问请求,进而保护非盘数据。
许多变形、修改、添加和改进都是可能的,而与虚拟化的级别无关。虚拟化软件因此可以包括主机、控制台或执行虚拟化功能的客户操作系统的组件。多个实例可以用于这里描述为单个实例的组件、操作或结构。最后,多个组件、操作和数据存储之间的边界某种意义上是任意的,并且特定操作在具体示例性配置的上下文中示出。可以预想其它功能分配并且也落在本发明的范围之内。一般而言,在示例性配置中呈现为分立组件的结构和功能可以被实现为组合结构或组件。类似地,呈现为单个组件的结构和功能可以被实现为分立组件。这些以及其它变形、修改、添加和改进可以落在权利要求的范围之内。
Claims (18)
1.一种系统,包括:
SBID至S块转换器,用于响应于通过网络从目标系统接收的标准块标识符,通过所述网络向所述目标系统返回相应标准数据块的版本,所述SBID至块转换器存储多个标准数据块的版本以及从所述标准数据块的相应一种生成的标准哈希值,所述SBID至块转换器将相应的标准块标识符与所述标准数据块的相应一种相关联;以及
哈希值至SBID转换器,用于响应于所述哈希值至SBID转换器从所述源系统接收到与从所述标准数据块的第一种生成的第一标准哈希值相匹配的第一文件哈希值,通过所述网络向源系统返回用于所述第一标准数据块的第一标准块标识符。
2.如权利要求1所述的系统,其中所述哈希值至SBID转换器响应于从所述源系统接收到与所述标准数据块的任何一种不同的第二文件哈希值,返回所述第二文件哈希值不对应于所述标准数据块的任何一种的指示。
3.如权利要求2所述的系统,进一步包括所述源系统和所述目标系统,所述源系统包括用于通过编码原始文件而生成格式文件的编码器,所述目标系统包括用于通过解码所述格式文件而生成所述原始文件的复制件的解码器,所述格式文件包括所述原始文件的第一文件块的版本以及所述第一标准块标识符。
4.如权利要求3所述的系统,其中所述源系统包括用于将所述原始文件划分成文件块的分块器、用于从所述文件块生成文件哈希值的哈希值生成器、以及用于将所述文件哈希值与关联于所述文件块的相应文件块标识符相关联的哈希值表,所述编码器
在当前处理的文件哈希值匹配先前处理的文件哈希值的情况下,在所述格式文件中将用于所述当前处理的文件块的文件块标识符与用于所述先前处理的文件哈希值的文件块标识符相关联,以及
在当前处理的文件哈希值不匹配先前处理的文件哈希值的情况下,在所述哈希值表中添加与所述当前处理的文件哈希值相关联的条目并且在所述哈希值表中添加其文件块标识符,并且将所述当前处理的文件哈希值传输到所述哈希值至UID转换器。
5.如权利要求4所述的系统,其中所述第一输入哈希值没有被传输到所述哈希值至SBID转换器。
6.如权利要求1所述的系统,其中所述原始文件是虚拟机图像文件。
7.一种方法,包括:
在源系统上将原始文件转换为原始块;
从所述原始块生成文件哈希值;
将所述文件哈希值中的一些通过网络传输到SBID服务器系统;
区分匹配从标准块生成的标准哈希值的文件哈希值以及不匹配所述标准哈希值的那些文件哈希值;
对于匹配标准哈希值的所述文件哈希值的每一个,将相应的标准块标识符返回到所述源系统;以及
生成包括所述标准块标识符的格式文件;
通过所述网络将所述格式文件传送到目标系统。
8.如权利要求7所述的方法,进一步包括:
对于不匹配标准哈希值的所述文件哈希值的每一个,将所述文件哈希值不匹配标准哈希值的指示返回到所述源系统;以及
对于不匹配标准哈希值的所述文件哈希值的每一个,在所述格式文件中包括从中生成所述文件哈希值的原始块的压缩版本,此包括过程不适用于匹配标准哈希值的任何文件哈希值。
9.如权利要求8所述的方法,进一步包括:
确定当前处理的文件哈希值是否匹配先前处理的文件哈希值;以及
如果匹配,则在所述格式文件中将用于所述当前处理的文件哈希值的文件块标识符与用于所述先前处理的文件哈希值的文件块标识符相关联,并且不将所述当前处理的文件哈希值传输到所述SBID服务器系统,以及
如果不匹配,则将所述当前处理的文件哈希值传输到所述SBID服务器系统。
10.如权利要求9所述的方法,进一步包括对所述格式文件解码,以在所述目标系统上产生所述原始文件的复制文件。
11.如权利要求10所述的方法,其中所述解码包括:
将所述格式文件中的SBID从所述目标系统通过所述网络传输到所述SBID服务器系统;以及
将所述标准块的版本从所述SBID服务器系统通过所述网络返回到所述目标系统。
12.如权利要求7所述的方法,其中所述原始文件是虚拟机图像文件。
13.一种包括计算机可读存储介质的制品,所述就计算机可读存储介质编码有计算机可执行指令的程序和标准数据块,所述程序包括以下步骤:
将原始文件划分成未压缩的文件块;
压缩所述未压缩的文件块以产生压缩文件块;
从所述压缩文件块生成文件哈希值;
对于所述文件哈希值中的每个,当其变成当前处理的哈希值时,确定它是否匹配在关联先前处理的文件哈希值与文件块标识符的表中的条目中表示的先前处理的文件哈希值;
在当前处理的文件哈希值匹配先前处理的文件哈希值的情况下,将用于当前处理的文件哈希值的文件块标识符与用于匹配的先前处理的文件哈希值的文件块标识符相关联,以及
在当前处理的文件哈希值不匹配先前处理的文件哈希值的情况下,将当前处理的文件哈希值传输到SBID服务器系统,并且如果从所述SBID服务器系统返回了指示该哈希值对应于标准块的SBID,则将该SBID包括在所述格式文件中。
14.如权利要求13所述的制品,其中如果所述SBID系统返回所述当前处理的文件哈希值没有对应于标准块的指示,则在所述格式文件中包括从中生成所述当前处理的哈希值的压缩文件块的拷贝。
15.如权利要求13所述的制品,其中所述程序进一步包括以下步骤:
将所述格式文件从源系统传输到目标系统;以及
解码所述格式文件以产生所述原始文件的复制件。
16.如权利要求15所述的制品,其中所述解码包括将所述格式文件中的SBID传输到所述SBID服务器系统以及在所述复制文件中包括作为交换接收到的标准块的版本。
17.如权利要求16所述的制品,其中所述解码包括对所述格式文件中的所述压缩块的所述拷贝进行解压缩以及在所述复制文件中包括所得的扩展块。
18.如权利要求13所述的制品,其中所述原始文件是虚拟机图像文件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9421508P | 2008-09-04 | 2008-09-04 | |
US61/094,215 | 2008-09-04 | ||
US12/399,871 US9235577B2 (en) | 2008-09-04 | 2009-03-06 | File transfer using standard blocks and standard-block identifiers |
US12/399,871 | 2009-03-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101710324A true CN101710324A (zh) | 2010-05-19 |
CN101710324B CN101710324B (zh) | 2014-01-01 |
Family
ID=41726854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910157456.8A Active CN101710324B (zh) | 2008-09-04 | 2009-07-30 | 使用标准块和标准块标识符的文件传送 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9235577B2 (zh) |
CN (1) | CN101710324B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105684441A (zh) * | 2013-10-25 | 2016-06-15 | 微软技术许可有限责任公司 | 视频和图像编码中的基于散列的块匹配 |
CN105684409A (zh) * | 2013-10-25 | 2016-06-15 | 微软技术许可有限责任公司 | 在视频和图像编码和解码中使用散列值来表示各块 |
US10368092B2 (en) | 2014-03-04 | 2019-07-30 | Microsoft Technology Licensing, Llc | Encoder-side decisions for block flipping and skip mode in intra block copy prediction |
US10390039B2 (en) | 2016-08-31 | 2019-08-20 | Microsoft Technology Licensing, Llc | Motion estimation for screen remoting scenarios |
US10567754B2 (en) | 2014-03-04 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hash table construction and availability checking for hash-based block matching |
US10681372B2 (en) | 2014-06-23 | 2020-06-09 | Microsoft Technology Licensing, Llc | Encoder decisions based on results of hash-based block matching |
US11025923B2 (en) | 2014-09-30 | 2021-06-01 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
US11202085B1 (en) | 2020-06-12 | 2021-12-14 | Microsoft Technology Licensing, Llc | Low-cost hash table construction and hash-based block matching for variable-size blocks |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9791353B2 (en) | 2008-08-29 | 2017-10-17 | Research International, Inc. | Concentrator |
US9235577B2 (en) | 2008-09-04 | 2016-01-12 | Vmware, Inc. | File transfer using standard blocks and standard-block identifiers |
US10642794B2 (en) * | 2008-09-11 | 2020-05-05 | Vmware, Inc. | Computer storage deduplication |
US10437865B1 (en) | 2009-01-21 | 2019-10-08 | Vmware, Inc. | Computer storage deduplication |
US8285957B1 (en) * | 2010-01-12 | 2012-10-09 | Netapp, Inc. | System and method for preprocessing a data set to improve deduplication |
US9130912B2 (en) * | 2010-03-05 | 2015-09-08 | International Business Machines Corporation | System and method for assisting virtual machine instantiation and migration |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9178862B1 (en) * | 2012-11-16 | 2015-11-03 | Isaac S. Daniel | System and method for convenient and secure electronic postmarking using an electronic postmarking terminal |
US20150356108A1 (en) * | 2013-05-21 | 2015-12-10 | Hitachi, Ltd. | Storage system and storage system control method |
CN103559143A (zh) * | 2013-11-08 | 2014-02-05 | 华为技术有限公司 | 数据拷贝管理装置及其数据拷贝方法 |
US9471354B1 (en) * | 2014-06-25 | 2016-10-18 | Amazon Technologies, Inc. | Determining provenance of virtual machine images |
US9575687B2 (en) * | 2015-01-29 | 2017-02-21 | Vmware, Inc. | Host-based replication with end-to-end compression |
CN105550345B (zh) * | 2015-12-25 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 文件操作方法和装置 |
JP6772655B2 (ja) * | 2016-08-15 | 2020-10-21 | 富士通株式会社 | 情報処理システムおよび情報処理方法 |
US11042330B2 (en) * | 2017-03-01 | 2021-06-22 | Samsung Electronics Co., Ltd. | Methods and systems for distributed data storage |
JP6528820B2 (ja) * | 2017-09-19 | 2019-06-12 | カシオ計算機株式会社 | コンピュータ、情報機器、これらを動作させるプログラム、情報処理システム、及び情報処理システムの制御方法 |
US10754741B1 (en) * | 2017-10-23 | 2020-08-25 | Amazon Technologies, Inc. | Event-driven replication for migrating computing resources |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0369052A1 (en) * | 1988-11-17 | 1990-05-23 | International Business Machines Corporation | Data base access system |
US5809494A (en) * | 1995-11-16 | 1998-09-15 | Applied Language Technologies, Inc. | Method for rapidly and efficiently hashing records of large databases |
US6202203B1 (en) * | 1995-12-06 | 2001-03-13 | International Business Machines Corporation | Method of, system for, and computer program product for providing global value numbering |
US5765165A (en) * | 1996-02-29 | 1998-06-09 | Sun Microsystems, Inc. | Fast method of determining duplicates on a linked list |
JP3952518B2 (ja) * | 1996-03-29 | 2007-08-01 | 株式会社日立製作所 | 多次元データ処理方法 |
JP3056071B2 (ja) * | 1996-04-25 | 2000-06-26 | 日本電気アイシーマイコンシステム株式会社 | 設計支援装置 |
US6014730A (en) * | 1996-12-26 | 2000-01-11 | Nec Corporation | Dynamic adding system for memory files shared among hosts, dynamic adding method for memory files shared among hosts, and computer-readable medium recording dynamic adding program for memory files shared among hosts |
US8099758B2 (en) * | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
US7379940B1 (en) * | 2000-07-20 | 2008-05-27 | Repliweb, Inc. | Focal point compression method and apparatus |
US7043637B2 (en) * | 2001-03-21 | 2006-05-09 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US7260820B1 (en) * | 2001-04-26 | 2007-08-21 | Vm Ware, Inc. | Undefeatable transformation for virtual machine I/O operations |
US7428636B1 (en) * | 2001-04-26 | 2008-09-23 | Vmware, Inc. | Selective encryption system and method for I/O operations |
US6789156B1 (en) * | 2001-05-22 | 2004-09-07 | Vmware, Inc. | Content-based, transparent sharing of memory units |
US7210004B2 (en) * | 2003-06-26 | 2007-04-24 | Copan Systems | Method and system for background processing of data in a storage system |
US7478096B2 (en) | 2003-02-26 | 2009-01-13 | Burnside Acquisition, Llc | History preservation in a computer storage system |
US7797393B2 (en) * | 2004-01-08 | 2010-09-14 | Agency For Science, Technology And Research | Shared storage network system and a method for operating a shared storage network system |
TWI246175B (en) * | 2004-10-11 | 2005-12-21 | Ind Tech Res Inst | Bonding structure of device packaging |
US20060130154A1 (en) * | 2004-11-30 | 2006-06-15 | Wai Lam | Method and system for protecting and verifying stored data |
US7634657B1 (en) * | 2004-12-23 | 2009-12-15 | Symantec Corporation | Reducing the probability of undetected collisions in hash-based data block processing |
US7600125B1 (en) * | 2004-12-23 | 2009-10-06 | Symantec Corporation | Hash-based data block processing with intermittently-connected systems |
JP4927408B2 (ja) * | 2006-01-25 | 2012-05-09 | 株式会社日立製作所 | 記憶システム及びそのデータ復元方法 |
WO2007118243A2 (en) * | 2006-04-07 | 2007-10-18 | Data Storage Group | Data compression and storage techniques |
US20070260748A1 (en) * | 2006-05-05 | 2007-11-08 | Talkington Jerry L | Method and apparatus to reduce the size of objects transmitted over a network |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US7720892B1 (en) * | 2006-06-30 | 2010-05-18 | Emc Corporation | Bulk updates and tape synchronization |
US20080059726A1 (en) * | 2006-08-31 | 2008-03-06 | Carlos Rozas | Dynamic measurement of an operating system in a virtualized system |
EP1933236A1 (en) * | 2006-12-12 | 2008-06-18 | Ixiar Technologies | Branch Office and remote server smart archiving based on mirroring and replication software |
EP1962192A1 (en) * | 2007-02-21 | 2008-08-27 | Deutsche Telekom AG | Method and system for the transparent migration of virtual machine storage |
US7769971B2 (en) * | 2007-03-29 | 2010-08-03 | Data Center Technologies | Replication and restoration of single-instance storage pools |
CN100489787C (zh) * | 2007-07-10 | 2009-05-20 | 北京大学 | 一种虚拟机的外存在线迁移方法 |
US7797748B2 (en) * | 2007-12-12 | 2010-09-14 | Vmware, Inc. | On-access anti-virus mechanism for virtual machine architecture |
US8086799B2 (en) * | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US8250043B2 (en) * | 2008-08-19 | 2012-08-21 | Netapp, Inc. | System and method for compression of partially ordered data sets |
US9235577B2 (en) | 2008-09-04 | 2016-01-12 | Vmware, Inc. | File transfer using standard blocks and standard-block identifiers |
US10642794B2 (en) * | 2008-09-11 | 2020-05-05 | Vmware, Inc. | Computer storage deduplication |
US8626723B2 (en) * | 2008-10-14 | 2014-01-07 | Vmware, Inc. | Storage-network de-duplication |
US8671082B1 (en) * | 2009-02-26 | 2014-03-11 | Netapp, Inc. | Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server |
US8166261B1 (en) * | 2009-03-31 | 2012-04-24 | Symantec Corporation | Systems and methods for seeding a fingerprint cache for data deduplication |
US20130238832A1 (en) * | 2012-03-07 | 2013-09-12 | Netapp, Inc. | Deduplicating hybrid storage aggregate |
US20170123676A1 (en) * | 2015-11-04 | 2017-05-04 | HGST Netherlands B.V. | Reference Block Aggregating into a Reference Set for Deduplication in Memory Management |
-
2009
- 2009-03-06 US US12/399,871 patent/US9235577B2/en active Active
- 2009-07-30 CN CN200910157456.8A patent/CN101710324B/zh active Active
-
2015
- 2015-12-28 US US14/981,611 patent/US10013272B2/en active Active
-
2018
- 2018-06-28 US US16/022,242 patent/US11163598B2/en active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105684441A (zh) * | 2013-10-25 | 2016-06-15 | 微软技术许可有限责任公司 | 视频和图像编码中的基于散列的块匹配 |
CN105684409A (zh) * | 2013-10-25 | 2016-06-15 | 微软技术许可有限责任公司 | 在视频和图像编码和解码中使用散列值来表示各块 |
CN105684441B (zh) * | 2013-10-25 | 2018-09-21 | 微软技术许可有限责任公司 | 视频和图像编码中的基于散列的块匹配 |
US10264290B2 (en) | 2013-10-25 | 2019-04-16 | Microsoft Technology Licensing, Llc | Hash-based block matching in video and image coding |
CN105684409B (zh) * | 2013-10-25 | 2019-08-13 | 微软技术许可有限责任公司 | 在视频和图像编码和解码中使用散列值来表示各块 |
US11076171B2 (en) | 2013-10-25 | 2021-07-27 | Microsoft Technology Licensing, Llc | Representing blocks with hash values in video and image coding and decoding |
US10368092B2 (en) | 2014-03-04 | 2019-07-30 | Microsoft Technology Licensing, Llc | Encoder-side decisions for block flipping and skip mode in intra block copy prediction |
US10567754B2 (en) | 2014-03-04 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hash table construction and availability checking for hash-based block matching |
US10681372B2 (en) | 2014-06-23 | 2020-06-09 | Microsoft Technology Licensing, Llc | Encoder decisions based on results of hash-based block matching |
US11025923B2 (en) | 2014-09-30 | 2021-06-01 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
US10390039B2 (en) | 2016-08-31 | 2019-08-20 | Microsoft Technology Licensing, Llc | Motion estimation for screen remoting scenarios |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
US11202085B1 (en) | 2020-06-12 | 2021-12-14 | Microsoft Technology Licensing, Llc | Low-cost hash table construction and hash-based block matching for variable-size blocks |
Also Published As
Publication number | Publication date |
---|---|
US10013272B2 (en) | 2018-07-03 |
CN101710324B (zh) | 2014-01-01 |
US20100057750A1 (en) | 2010-03-04 |
US20160147557A1 (en) | 2016-05-26 |
US11163598B2 (en) | 2021-11-02 |
US9235577B2 (en) | 2016-01-12 |
US20180349169A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101710324B (zh) | 使用标准块和标准块标识符的文件传送 | |
US6804676B1 (en) | System and method in a data processing system for generating compressed affinity records from data records | |
CN101814045B (zh) | 一种用于备份服务的数据组织方法 | |
US10963481B2 (en) | Custom object-in-memory format in data grid network appliance | |
US20120089579A1 (en) | Compression pipeline for storing data in a storage cloud | |
US10146694B1 (en) | Persistent cache layer in a distributed file system | |
US9501564B1 (en) | Configuration item reconciliation | |
CN103348334A (zh) | 云系统以及在云系统中的文件压缩及传送方法 | |
US20150046398A1 (en) | Accessing And Replicating Backup Data Objects | |
CN109376277B (zh) | 确定设备指纹同源性的方法及装置 | |
Siddiqui et al. | Pseudo-cache-based IoT small files management framework in HDFS cluster | |
US11061868B1 (en) | Persistent cache layer to tier data to cloud storage | |
US20210374118A1 (en) | Data archiving method and system using hybrid storage of data | |
CN105637489A (zh) | 分布式数据库系统中的异步垃圾收集 | |
US20120324560A1 (en) | Token data operations | |
US11829344B2 (en) | System for managing data | |
US20190098064A1 (en) | Entropy sharing across multiple compression streams | |
US11687542B2 (en) | Techniques for in-memory data searching | |
US20220129208A1 (en) | Data compression/decompression system, and data compression/decompression method | |
US20230333938A1 (en) | Data backup method, data backup device, and computer program product | |
CN108052610B (zh) | 主数据的管理方法、服务器、存储介质及电子设备 | |
US20140317411A1 (en) | Deduplication of data | |
Gnana Jeslin et al. | for Convenient Big Data Management in Cloud Backup Systems. Symmetry 2022, 14, 1392 | |
Yang et al. | SolsDB: Solve the Ethereum’s bottleneck caused by storage engine | |
CN112632053A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |
|
CP03 | Change of name, title or address |