CN107016053A - 一种并行的数据差分方法 - Google Patents
一种并行的数据差分方法 Download PDFInfo
- Publication number
- CN107016053A CN107016053A CN201710121255.7A CN201710121255A CN107016053A CN 107016053 A CN107016053 A CN 107016053A CN 201710121255 A CN201710121255 A CN 201710121255A CN 107016053 A CN107016053 A CN 107016053A
- Authority
- CN
- China
- Prior art keywords
- file
- patch
- file destination
- cutting
- destination
- 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
Classifications
-
- 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/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
Abstract
本发明提供一种并行的数据差分方法,步骤包括:(1)文件预处理:将源文件和目标文件初始化,生成源文件的后缀数组,创建补丁文件并初始化;(2)目标文件切分:根据线程数目切分目标文件,为切分后的每一部分目标文件增加一个线程进行独立处理;(3)线程处理过程:在每一线程中,初始化切分后的目标文件,创建patch文件,通过上述后缀数组比较源文件与目标文件生成差分数据,将该差分数据写入该patch文件;(4)主进程合并处理:将上述各线程的已写入差分数据的patch文件一起写入上述补丁文件。本方法采用多线程并行技术,来提高生成补丁的速度。
Description
技术领域
本发明涉及计算机信息技术领域,具体涉及一种并行的数据差分方法。
背景技术
随着互联网时代的到来,数据总量增长迅速,数据压缩在数据传输和存储中起到重要作用。数据差分也是一种压缩技术,其利用源文件和目标文件的差异实现对目标文件的压缩和解压。数据差分是指通过比较源数据和目标数据的差异,并产生差分数据补丁。同时利用差分数据补丁和源数据可以还原目标数据,从而帮助减少磁盘或宽带等资源消耗。数据差分技术主要应用在软件更新、数据传输和数据备份等具有对比性质的数据处理中。例如,在软件更新中,可以通过产生两个版本的差分文件来更新软件,减少了宽带资源消耗。
形式上,一个数据差分算法如图1和图2所示,需要输入源数据和目标数据,通过源数据和目标数据的对比,产生差分数据,用于记录两个数据间的差异;并且通过差分数据和源数据可以无损还原目标数据。目前常用的差分算法有Diff算法、Rsync算法、Xdelta算法和Bsdiff算法等。
Diff是一个文件比较工具,用来输出两个文件之间的差异。它通常是用来显示一个版本的文件和以前版本的文件之间的变化。该方法能很好地处理文本文件,因为文本文件的变化往往是局部的:从一个版本到下一个版本的变化可能是只有几行,但是大部分行将保持不变。然而这种方法不适合用在可执行文件上,因为当可执行文件改变时,通常会导致大范围的改变。
Rsync是类Unix系统下的数据镜像备份公户Remote Sync,该算法不需要两个文件在同一台机器上,会先找出目标文件和源文件中相同的部分,只将那些认为不相同的数据同步过去。由于在第一次同步时Rsync会复制全部内容,在下一次只传输修改过的文件,所以Rsync算法速度比较快。
Xdelta是专门用来处理二进制文件的工具,它包括对应的补丁合成工具,我们通常将它们结合起来实现生成补丁。
数据差分算法Bsdiff是一个基于对bzip2压缩并且开源的构建二进制补丁的工具,Bspatch是其相对应的补丁合成工具。作者Colin Percival在文章(Colin Percival,Naive differences of executable code,http://www.daemonology.net/bsdiff/,2003.)中简单介绍了工具的思想,并在其博士毕业论文(Colin Percival,Matching withMismatches andAssortedApplications[J].University of Oxford,2006.)有详细的论证和描述。
Bsdiff算法流程如图3所示,将算法的思想简单介绍如下:
(1)源文件和目标文件处理:包括初始化、生成后缀数组和初始化补丁文件:输入源文件和目标文件,生成源文件的后缀数组索引,逆序扫描目标文件,以二分查找的思想在后缀数组索引中找到一系列与源文件相匹配序列;这些匹配序列必须满足条件:假设已找到的匹配是new[x...x+k]=old[y...y+k],那么要找到的匹配对new[x'...x'+k']=old[y'...y'+k']应该满足new[x'+i]≠old[x'+i+(y-x)],其中i∈{z|z≥8,z∈N*},k为序列长度。
该算法对目标文件的扫描策略是:从前往后依次扫描目标文件,如果在源文件和目标文件中找到连续的对应字符相等的序列,即最长公共前缀,或者是找到满足上述条件的序列。则在扫描的过程中直接跳过该序列的长度k,即扫描位置scan变为scan+ks。因此,源文件和目标文件相似性越大,扫描目标文件所需的时间开销越少。
(2)比较文件,找到近似匹配对,生成差分数据:每一个后缀向前延伸(每一个前缀向后延伸)使源文件和目标文件中对应位置相同的字符达到该近似匹配区域的50%以上,这样就生成了两两不相交的近似匹配对。这种近似匹配将大致对应可执行代码中从源代码的未修改区域衍生出来的块,而目标文件中不是近似匹配对的部分,大致会对应源代码中修改过的行。因为在这个过程中用到了延伸匹配,所以我们忽略任何一个比8个字节匹配的“更好的”的匹配。经过这一步的处理,我们会将上一步得到的序列分为3部分,其中包括2个近似匹配对和1个非近似匹配部分,它们的相对顺序是:近似匹配对、非近似匹配对、近似匹配对。
(3)生成差分文件:只对上一步骤中生成的前两部分内容进行处理,即第一个近似匹配对和非近似匹配对,对于找到的第二个近似匹配对会在下一个找到的区域中进行处理。差分文件包括三部分:第一部分是包含ADD和INSERT指令的控制文件块(以下简称ctrl块),其中ADD指令由偏移量字段和长度字段组成,INSERT指令只有一个长度字段;第二部分是由近似匹配对组成的“difference”文件块(以下简称diff块),该部分是由目标文件和源文件的对应元素做减法运算生成,即patch[i]=new[i]-old[i];第三部分是由目标文件中近似匹配对以外的所有字节组成的“extra”文件块(以下简称extra块)。生成差分文件后,用bzip2进行压缩,压缩后的文件即是最终的二进制差分数据。
该算法最早是应用在Unix系统中,现在已经广泛地应用到App的增量更新,并且Chrome浏览器也应用该算法来减小补丁包的大小。以目前手机APP应用商店的软件更新为例,手机APP应用商店在对软件进行更新时,都是应用Bsdiff算法先对前后版本的APP软件进行数据差分,然后将生成的更新补丁发送到各个手机终端进行软件更新,以减少带宽资源消耗并加速手机端APP更新过程。
Bsdiff算法比Xdelta算法产生的二进制补丁小50-80%。该算法的时间复杂度是O((n+m)lgn),其中n表示源文件大小,m表示目标文件大小;恢复目标文件时的时间复杂度是O(n+m),虽然系统处理速度很快,但Bsdiff算法非常耗费内存,Bsdiff算法最多需要max(17*n,9*n+m)+O(1)字节的内存,其中n为源文件的大小,m为目标文件的大小。在由差分文件和源文件生成目标文件时,也需要n+m+O(1)字节。
发明内容
针对Bsdiff算法的问题,本发明提供一种并行的数据差分方法,采用多线程并行技术,来提高生成补丁的速度。
为解决上述技术问题,本发明采用如下技术方案:
一种并行的数据差分方法,步骤包括:
(1)文件预处理:将源文件和目标文件初始化,生成源文件的后缀数组,创建补丁文件并初始化;
(2)目标文件切分:根据线程数目切分目标文件,为切分后的每一部分目标文件增加一个线程进行独立处理;
(3)线程处理过程:在每一线程中,初始化切分后的目标文件,创建patch文件,通过上述后缀数组比较源文件与目标文件生成差分数据,将该差分数据写入该patch文件;
(4)主进程合并处理:将上述各线程的已写入差分数据的patch文件一起写入上述补丁文件。
进一步地,将源文件和目标文件初始化是指,为源文件和目标文件分配内存空间,将源文件和目标文件读入内存中,记录该两个文件大小。
进一步地,初始化的补丁文件所含信息包括版本标识符、目标文件大小及patch块个数。
进一步地,后缀数组由序号和位置构成,其中序号表示后缀数组的排序,位置表示读取源文件的内存起始位置。
进一步地,目标文件切分时,可根据文件大小平均切分,或者根据目标文件与源文件的相似程度进行切分。
进一步地,初始化切分后的目标文件是指,初始化切分后的目标文件大小和内存起始位置。
进一步地,差分数据包括diff块、ctrl块和extra块,并进行bzip2压缩。
进一步地,patch文件所含信息包括ctrl块数目和diff块数目,以及bzip2格式的ctrl块数据、diff块数据和extra块数据。
本发明的有益效果是,基于多线程并行思想,通过改进Bsdiff算法,利用并行计算技术加快数据差分速度,提高了差分算法的处理速度,降低执行时间。
附图说明
图1为数据差分算法生成差分文件/补丁示意图。
图2为数据差分算法生成目标文件示意图。
图3为Bsdiff算法流程示意图。
图4为5个线程的并行Bsdiff算法流程示意图。
图5为采用本发明的并行的数据差分方法的流程示意图。
图6为还原目标文件的流程示意图。
图7为iReader.apk(1.6版本到1.8版本)各个线程生成的patch文件示意图。
图8为iReader.apk(1.6版本到1.8版本)补丁文件结构示意图。
图9为原Bsdiff算法与并行Bsdiff算法执行时间对比图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明使用并行思想改进Bsdiff算法,实现了一种并行的数据差分方法。在时间上有良好的性能,并且没有增加额外的空间消耗。
并行思想是利用众核技术,将原本单线程执行的程序分成多个线程同步执行,从而达到加速的目的。该并行思想如图4所示,将目标文件分成n份,交给n个线程单独处理并生成各自的patch文件,然后将每一个patch文件合并,组成差分文件(补丁文件)。本发明利用这种方式减少生成差分数据的时间。
本方法采用改进的Bsdiff算法,即并行Bsdiff算法,流程如图5所示,主要分成四部分:
(1)文件预处理:包括初始化、生成后缀数组和初始化补丁文件三部分。首先,初始化目标文件和源文件大小,分配内存空间;然后,生成源文件的后缀数组;最后,创建补丁文件,初始化补丁文件信息,如版本标识符、目标文件大小、patch块个数(即patch文件个数,亦即线程个数)等。
(2)目标文件切分:根据线程数目,将目标文件按大小平均切分,为每一部分目标文件增加一个线程独立处理。需指出的是,上述平均切分不以为限,还可以采用其他方法,如根据目标文件与源文件的相似程度进行切分,保证每一部分的目标文件与对应位置的源文件相似度大致相同。由于线程处理速度与目标文件和源文件的相似程度成正比,相似程度越高,处理速度越快,故该两种方法也各有特点:前者方法简单,但可能导致各个线程处理速度长短不一;而后者可保证较高相似度,可以提高线程整体处理速度,但计算相似度会带来一定的额外开销。由于切分对整个方法性能影响不大,故才用哪种方法均可,差别不大。
(3)线程处理过程:线程流程为:1)初始化阶段:包括初始化目标文件分块大小、起始位置;2)初始化patch文件:包括创建patch文件等;3)生成差分数据:通过后缀数组比较源文件与目标文件,生成需要的diff块、ctrl块和extra块,并进行bzip2压缩;4)写入补丁信息:将差分数据和差分块(即diff块、ctrl块和extra块)的数量写入patch文件。
(4)主进程合并处理:主进程将各个线程生成的patch文件合并,写入补丁文件。
表1是并行Bsdiff算法生成的差分文件的格式,包括版本标识符、目标文件大小以及patch块的个数,在文件末尾依次记录每一个patch块的bzip2的压缩数据。patch文件的格式如表2所示,patch文件格式是原Bsdiff算法中的差分文件格式,包括ctrl块数目、diff块数目,bzip2格式的ctrl块数据、bzip2格式的diff块数据和bzip2格式的extra块数据。
表1差分文件格式
起始位置 | 所占大小(字节) | 说明 |
0 | 8 | “BSDIFF40”版本标识符 |
8 | 8 | 目标文件大小 |
16 | 8 | patch块的个数 |
24 | 8 | 第1个线程生成的bzip2格式的patch块 |
32 | 8 | 第2个线程生成的bzip2格式的patch块 |
… | … | … |
24+8*(i-1) | 8 | 第i个线程生成的bzip2格式的patch块 |
表2 patch文件格式
起始位置 | 所占大小(字节) | 说明 |
0 | 8 | ctrl块的数目,用X表示 |
8 | 8 | diff块数目,用Y表示 |
16 | X | bzip2格式的ctrl块,X字节 |
16+X | Y | bzip2格式的diff块,Y字节 |
16+X+Y | ? | bzip2格式的extra块,文件剩余大小 |
本发明旨在以Bsdiff算法为基础,改进Bsdiff算法,基于多线程并行思想,利用并行计算技术加快数据差分速度,提高了差分算法的处理速度。
还原目标文件的过程速度较快,只需按照原Bspatch算法依次处理patch文件部分即可,所以没有使用并行计算(众核)技术,具体方法如图6所示:
步骤如下:
(1)初始化:读取补丁文件、校验版本号和读取数据块长度等,同时分别整理出差分文件中不同线程的处理部分,等待依次处理。
(2)依次处理patch部分:根据patch数据中的控制块,读取diff块长度、读取extra块长度和源文件跳跃长度进行操作,还原每一部分目标文件。
(3)生成目标文件:将每一部分的文件合并为目标文件。
针对本发明提供的并行的数据差分方法,在此列举一实施例,本实施例以iReader.apk的1.6版本(源文件,3092113字节)和1.8版本(目标文件,3400660字节)为数据样本,使用四个线程详细说明生成补丁文件的具体实施情况。
(1)初始化阶段:主要为读入源文件和目标文件到内存中,记录源文件大小(3092113字节)和目标文件大小(3400660字节)等。
(2)生成源文件的后缀数组:如表3所示,其中序号表示数组的排序,位置表示的是读取源文件的内存的起始位置。例如,(2,3092111)表示的是排名第2位的后缀数组是从源文件第3092111字节开始(包含第3092111字节)到源文件末尾组成的后缀数组。
表3 iReader.apk(1.6版本)生成的后缀数组表
序号 | 位置 |
0 | 3092113 |
1 | 3092112 |
2 | 3092111 |
3 | 3092110 |
4 | 1474694 |
… | … |
3092111 | 1387411 |
3092112 | 1387410 |
3092113 | 1389409 |
(3)创建补丁文件“iReader-16-18.patch”:将标识符“BSDIFF40”、目标文件大小“3400660”和patch块个数“4”写入补丁文件。
(4)将目标文件分成四份,每份大小为850165字节,分别交给四个线程进行处理。线程处理分为两步:
1)寻找差异元素个数至少为8的区域,将每一部分得到的区域个数如表4所示;
表4 iReader.apk(1.6版本到1.8版本)线程内部区域划分个数
线程 | 1 | 2 | 3 | 4 |
个数 | 1301 | 5283 | 1049 | 1462 |
2)将上一步找到的每一个区域进一步处理为差分文件的ctrl块、diff块和extra块,并写入patch文件;图7是各个线程生成的patch文件内容。
3)随后等待4个线程执行完毕,分别读取每个线程生成的patch文件,将其内容整理为一个补丁文件。如图8所示,四个patch文件大小分别为623559字节、290112字节、289565字节和662986字节,补丁文件大小为1866278字节。
测试数据对比
本测试数据使用iReader1.6.apk(2.94MB)和iReader1.8.apk(3.24MB),WeChat2.0.exe(32.9MB)和WeChat2.1.exe(32.9MB),QQ8.3.exe(54.2MB)和QQ8.4.exe(55.6MB)。实验机器CPU是inter2.27GHz,8核处理器,同时拥有8.00G内存,操作系统是CentOS 6.5版本。在测试实验过程中,采用两种方法进行,即原Bsdiff算法和本发明方法采用的并行Bsdiff算法,以进行数据对比。采用并行Bsdiff算法时,对目标文件进行等量切分。
图9所示是原Bsdiff算法和并行Bsdiff算法性能对比,由该图可知,本发明方法在4线程和8线程下的处理时间大大缩短,为原Bsdiff算法处理时间的30%~50%。
表5和表6是还原数据过程中的差分文件大小和执行时间对比。由表5可知,两种算法生成的差分文件大小相同,说明本发明方法并未增加差分文件大小。由表6可知,两种算法以及并行Bsdiff算法采用的不同线程数目,生成的差分文件在进行目标文件还原时,还原时间有一定差异,但这种差异很小,可忽略不计,证明本发明方法所生成的差分文件并未明显增加目标文件的还原时间。
表5差分文件大小比较(4线程)
测试数据(MB) | 原Bsdiff算法 | 并行Bsdiff算法 |
iReader.apk | 1.77 | 1.77 |
WeChat.exe | 30.0 | 30.0 |
QQ.exe | 52.4 | 52.4 |
表6目标文件还原时间比较(单位/s)
由本测试对比可知,与原方法相比,采用本方法生成补丁文件所用时间大大缩短,而且不增加差分文件大小和目标文件的还原时间。
需特别指出的是,本发明中,差分文件即补丁文件,为同一文件的两个名称,补丁文件是针对软件更新而言,差分文件是针对并行Bsdiff算法而言。另外,每一线程生成的patch文件也是一种补丁文件,为便于区分,本发明只称之为patch文件。
Claims (8)
1.一种并行的数据差分方法,步骤包括:
(1)文件预处理:将源文件和目标文件初始化,生成源文件的后缀数组,创建补丁文件并初始化;
(2)目标文件切分:根据线程数目切分目标文件,为切分后的每一部分目标文件增加一个线程进行独立处理;
(3)线程处理过程:在每一线程中,初始化切分后的目标文件,创建patch文件,通过上述后缀数组比较源文件与目标文件生成差分数据,将该差分数据写入该patch文件;
(4)主进程合并处理:将上述各线程的已写入差分数据的patch文件一起写入上述补丁文件。
2.根据权利要求1所述的方法,其特征在于,将源文件和目标文件初始化是指,为源文件和目标文件分配内存空间,将源文件和目标文件读入内存中,记录该两个文件大小。
3.根据权利要求1所述的方法,其特征在于,初始化的补丁文件所含信息包括版本标识符、目标文件大小及patch块个数。
4.根据权利要求1所述的方法,其特征在于,后缀数组由序号和位置构成,其中序号表示后缀数组的排序,位置表示读取源文件的内存起始位置。
5.根据权利要求1所述的方法,其特征在于,目标文件切分时,可根据文件大小平均切分,或者根据目标文件与源文件的相似程度进行切分。
6.根据权利要求1所述的方法,其特征在于,初始化切分后的目标文件是指,初始化切分后的目标文件大小和内存起始位置。
7.根据权利要求1所述的方法,其特征在于,差分数据包括diff块、ctrl块和extra块,并进行bzip2压缩。
8.根据权利要求1所述的方法,其特征在于,patch文件所含信息包括ctrl块数目和diff块数目,以及bzip2格式的ctrl块数据、diff块数据和extra块数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121255.7A CN107016053B (zh) | 2017-03-02 | 2017-03-02 | 一种并行的数据差分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121255.7A CN107016053B (zh) | 2017-03-02 | 2017-03-02 | 一种并行的数据差分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107016053A true CN107016053A (zh) | 2017-08-04 |
CN107016053B CN107016053B (zh) | 2020-05-22 |
Family
ID=59440096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710121255.7A Active CN107016053B (zh) | 2017-03-02 | 2017-03-02 | 一种并行的数据差分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107016053B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212055A (zh) * | 2019-12-30 | 2020-05-29 | 上海安洵信息技术有限公司 | 非侵入式网站远程检测系统及检测方法 |
CN111970161A (zh) * | 2020-09-21 | 2020-11-20 | 浙江大学 | 一种基于地址预测的物联网应用差分升级方法 |
CN113031988A (zh) * | 2021-03-26 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 应用程序更新方法、装置、设备和存储介质 |
WO2021128371A1 (zh) * | 2019-12-28 | 2021-07-01 | 深圳市欢太科技有限公司 | 差分文件生成方法、增量更新方法、计算设备及存储介质 |
CN116028095A (zh) * | 2022-06-30 | 2023-04-28 | 荣耀终端有限公司 | 差分文件的生成方法、还原方法及电子设备 |
WO2024051465A1 (zh) * | 2022-09-09 | 2024-03-14 | 荣耀终端有限公司 | 差分文件的还原方法及电子设备 |
CN113031988B (zh) * | 2021-03-26 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 应用程序更新方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
WO2014206046A1 (en) * | 2013-06-25 | 2014-12-31 | Tencent Technology (Shenzhen) Company Limited | A method, equipment and system of incremental update |
-
2017
- 2017-03-02 CN CN201710121255.7A patent/CN107016053B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
WO2014206046A1 (en) * | 2013-06-25 | 2014-12-31 | Tencent Technology (Shenzhen) Company Limited | A method, equipment and system of incremental update |
Non-Patent Citations (2)
Title |
---|
ADD_ADA: "[差量更新系列1]BSDiff算法学习笔记", 《HTTPS://BLOG.CSDN.NET/ADD_ADA/ARTICLE/DETAILS/51232889》 * |
COLIN PERCIVAL: "Naive Differences of Executable Code", 《HTTP://WWW.DAEMONOLOGY.NET/BSDIFF/》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021128371A1 (zh) * | 2019-12-28 | 2021-07-01 | 深圳市欢太科技有限公司 | 差分文件生成方法、增量更新方法、计算设备及存储介质 |
CN111212055A (zh) * | 2019-12-30 | 2020-05-29 | 上海安洵信息技术有限公司 | 非侵入式网站远程检测系统及检测方法 |
CN111970161A (zh) * | 2020-09-21 | 2020-11-20 | 浙江大学 | 一种基于地址预测的物联网应用差分升级方法 |
CN113031988A (zh) * | 2021-03-26 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 应用程序更新方法、装置、设备和存储介质 |
CN113031988B (zh) * | 2021-03-26 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 应用程序更新方法、装置、设备和存储介质 |
CN116028095A (zh) * | 2022-06-30 | 2023-04-28 | 荣耀终端有限公司 | 差分文件的生成方法、还原方法及电子设备 |
CN116028095B (zh) * | 2022-06-30 | 2023-11-10 | 荣耀终端有限公司 | 差分文件的生成方法、还原方法及电子设备 |
WO2024051465A1 (zh) * | 2022-09-09 | 2024-03-14 | 荣耀终端有限公司 | 差分文件的还原方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107016053B (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107016053A (zh) | 一种并行的数据差分方法 | |
USRE48791E1 (en) | Scalable, adaptable, and manageable system for multimedia identification | |
US7747582B1 (en) | Surrogate hashing | |
US9785708B2 (en) | Scalable, adaptable, and manageable system for multimedia identification | |
Schatz et al. | High-throughput sequence alignment using Graphics Processing Units | |
US11461304B2 (en) | Signature-based cache optimization for data preparation | |
US8190613B2 (en) | System, method and program for creating index for database | |
US8286127B2 (en) | Mirrored file system | |
US7814070B1 (en) | Surrogate hashing | |
CN100378648C (zh) | 创建卷映像 | |
TWI444894B (zh) | 用於資料平行操作中的次序保存之方法及電腦可讀取儲存媒體 | |
EP2742446B1 (en) | A system and method to store video fingerprints on distributed nodes in cloud systems | |
JP2010541092A5 (zh) | ||
US20080244355A1 (en) | Comparing data sets through identification of matching blocks | |
US20210089358A1 (en) | Techniques for improving processing of bioinformatics information to decrease processing time | |
CN113767390A (zh) | 用于分布式存储系统中的改变检测的属性分组 | |
EP3362808B1 (en) | Cache optimization for data preparation | |
CN1523523A (zh) | 分布复制命令的系统和方法 | |
CN107085615B (zh) | 文本消重系统、方法、服务器及计算机存储介质 | |
EP2957088B1 (en) | Serialization for delta encoding | |
US20080243840A1 (en) | Comparing data sets through identification of matching blocks | |
CN114741363A (zh) | 虚拟形象的骨骼资源处理及获取方法、设备和程序产品 | |
Belazzougui et al. | Lempel-Ziv decoding in external memory | |
US20100070511A1 (en) | Reducing use of randomness in consistent uniform hashing | |
US20070220026A1 (en) | Efficient caching for large scale distributed computations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |