一种增量更新文件的方法及装置制造方法及图纸

技术编号:19341185 阅读:20 留言:0更新日期:2018-11-07 13:33
本发明专利技术公开了一种增量更新文件的方法,用于降低增量更新文件的服务端运营维护成本,该方法应用于客户端,该方法可以包括:确定源文件,获取与源文件对应的目标文件的校验表;利用源文件以及校验表对源文件与目标文件的差异进行校验;根据校验的结果生成重复数据索引和差异数据索引;利用差异数据索引从服务端下载源文件与目标文件间的差异数据,及利用重复数据索引从源文件中确定源文件与目标文件间的重复数据;及将重复数据以及差异数据进行拼接,以生成目标文件。本发明专利技术还公开了一种增量更新文件的装置。

Method and device for incrementally updating files

The invention discloses a method for incremental updating of files, which is used to reduce the service-side operation and maintenance cost of incremental updating files. The method is applied to the client side. The method can include: determining the source file, obtaining the checklist of the target file corresponding to the source file, and using the source file and the checklist to check the source file and the target text. The differences between source files and target files are checked; the duplicate data index and the difference data index are generated according to the results of verification; the difference data index is used to download the difference data between source files and target files from the server side, and the duplicate data between source files and target files is determined by using the duplicate data index; and the duplicate data is used to identify the duplicate data between source files and target files. And the difference data is spliced to generate the target file. The invention also discloses a device for incrementally updating files.

【技术实现步骤摘要】
一种增量更新文件的方法及装置
本专利技术涉及互联网
,具体涉及一种增量更新文件的方法及装置。
技术介绍
增量更新是指在进行更新操作时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新,增量更新与完全更新相对。这种更新的概念应用范围比较广泛,凡是需要进行数据更新的地方都会用到,例如软件更新、数据库更新、杀毒软件的病毒库更新、路由表更新等等。在现有技术中存在一种增量更新文件的算法,即远程同步(remotesynchronize,rsync)算法,采用服务器/客户端(Client/Server,C/S)架构,计算差量数据的流程在服务端执行,需要有较大服务端资源和技术做支持,使服务器的运行维护成本较高。
技术实现思路
有鉴于此,本专利技术提供一种增量更新文件的方法及装置,以解决现有技术中增量更新文件成本较高的技术问题。为解决上述问题,本专利技术提供的技术方案如下:一种增量更新文件的方法,所述方法应用于客户端,所述方法包括:确定源文件,获取与所述源文件对应的目标文件的校验表;利用所述源文件以及所述校验表对所述源文件与目标文件的差异进行校验;根据校验的结果生成重复数据索引和差异数据索引;利用所述差异数据索引从服务端下载所述源文件与所述目标文件间的差异数据,及利用所述重复数据索引从所述源文件中确定所述源文件与所述目标文件间的重复数据;及将所述重复数据以及所述差异数据进行拼接,以生成所述目标文件。一种增量更新文件的装置,所述装置应用于客户端,所述装置包括:获取单元,用于确定源文件,获取与所述源文件对应的目标文件的校验表;校验单元,用于利用所述源文件以及所述校验表对所述源文件与目标文件的差异进行校验;生成单元,用于根据校验的结果生成重复数据索引和差异数据索引;下载单元,用于利用所述差异数据索引从服务端下载所述源文件与所述目标文件间的差异数据,及利用所述重复数据索引从所述源文件中确定所述源文件与所述目标文件间的重复数据;及拼接单元,用于将所述重复数据以及所述差异数据进行拼接,以生成所述目标文件。本专利技术实施例通过客户端从服务端获取与源文件对应的目标文件的校验表,在客户端完成源文件与目标文件之间差异的校验,生成重复数据索引以及差异数据索引,根据复数据索引以及差异数据索引确定重复数据以及差异数据,从而在客户端拼接生成目标文件,在该过程中服务端仅需提供目标文件以及目标文件的校验表,确定重复数据和差异数据在客户端完成,降低了服务端的运营维护成本。附图说明图1为本专利技术实施例中提供的增量更新文件的方法实施例一的流程图;图2为本专利技术实施例中源文件与目标文件的示意图;图3为本专利技术实施例中提供的增量更新文件的方法实施例二的流程图;图4为本专利技术实施例中提供的增量更新文件的方法实施例三的流程图;图5为本专利技术实施例中提供的增量更新文件的方法实施例四的示意图;图6为本专利技术实施例中提供的增量更新文件的装置实施例的示意图;图7为本专利技术实施例中提供的一种终端的示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术实施例作进一步详细的说明。现有技术的rsync算法执行增量更新的过程如下:(1)在客户端将源文件切分为若干个分块,对每个分块分别计算弱校验值以及强校验值,弱校验采用Adler32算法,强校验采用MD5算法,在本地生成源文件的校验表,该校验表中包括源文件各个分块对应的强校验值以及弱校验值,客户端将源文件的校验表发送给服务端;(2)服务端将校验表保存在二级哈希表中,计算目标文件第一个分块的弱校验值以及强校验值,在校验表中查找是否存在该分块的弱校验值以及强校验值,若查找一致则向后偏移一个分块继续计算该分块的弱校验值以及强校验值重新在校验表中查找,如果没有查找到计算向后偏移一个字节的分块的弱校验值以及强校验值重新在校验表中查找,直到对目标文件完成循环校验查找,从而得到重复分块的序号以及差异数据返回给客户端;(3)客户端根据差量数据以及本地源文件进行拼接即可得到最终的目标文件。但是,在现有技术中rsync算法采用的是C/S架构,计算差量数据的流程放在服务端,需要有较大服务端资源和技术做支撑,成本较高;且增量更新依赖客户端中源文件的完整性,如果源文件损坏或被篡改则无法完成增量更新文件;同时在循环校验查找时对每一分块都一次性生成弱校验值以及强校验值,增加了运算量、降低了服务端性能;另外,rsync的弱校验算法采用的是Adler32算法,大量的分片计算需要耗费大量的时间,也影响了服务器整体的性能。为此,本专利技术实施例中提供了一种增量更新文件的方法及装置,基于rsync算法,通过将生成校验表和计算差量的流程都转移到客户端来解除对服务端的高依赖,同时优化Adler32算法,且逐个计算Adler32中的A值、B值以及强校验值以减少计算量,提高整体性能。参见图1所示,示出了本专利技术实施例中提供的增量更新文件的方法实施例一,本实施例将从增量更新文件的装置角度进行描述,该增量更新文件的装置具体可以集成在客户端中,该客户端可以装载在终端中,该终端具体可以为智能手机、平板电脑、电子书阅读器、MP3(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)播放器、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面3)播放器、膝上型便携计算机和台式计算机等等,本专利技术实施例可以包括以下步骤:步骤101:确定源文件,获取与源文件对应的目标文件的校验表。源文件即在客户端本地需要更新的文件,目标文件即源文件在更新之后的最新文件,在服务端可以生成目标文件的校验表,在本专利技术的一些可能的实现方式中,校验表中可以包括目标文件各个分块对应的校验值。在服务端首先可以对目标文件进行分块,每个分块具有不同的分块标识,且每个分块具有预设的块长,假设目标文件各个分块的块长为n个字节,n为正整数;然后可以对各个分块分别计算弱校验值和强校验值,弱校验值可以通过传统的Adler32算法计算,也可以通过本专利技术中提供的改进的Adler32算法计算,本专利技术中提供的改进的Adler32算法将在后续实施例中说明。其中,每个分块的弱校验值可以包括第一弱校验值A以及第二弱校验值B,强校验值可以通过MD5(Message-DigestAlgorithm5,信息-摘要算法5)算法计算,即每个分块的强校验值可以为MD5值。在实际应用中可以将目标文件以及目标文件的校验表上传到CDN(ContentDeliveryNetwork,内容分发网络)模块存储,客户端在需要进行增量更新文件时可以从服务端的CDN模块获取源文件对应的目标文件的校验表。例如,目标文件被分为5个分块,校验表中包括每个分块标识分别对应的弱校验值A、B以及强校验值MD5值。步骤102:利用源文件以及校验表对源文件与目标文件的差异进行校验。利用源文件以及目标文件的校验表在客户端可以循环校验获得源文件与目标文件的差异,获得校验的结果。例如,参见图2所示,假设目标文件包括5个分块,每个分块为4字节,利用源文件以及校验表对源文件与目标文件的差异进行校验,可以获得校验的结果为源文件的前4个字节与目标文件本文档来自技高网...

【技术保护点】
1.一种增量更新文件的方法,其特征在于,所述方法应用于客户端,所述方法包括:确定源文件,获取与所述源文件对应的目标文件的校验表;利用所述源文件以及所述校验表对所述源文件与目标文件的差异进行校验;根据校验的结果生成重复数据索引和差异数据索引;利用所述差异数据索引从服务端下载所述源文件与所述目标文件间的差异数据,及利用所述重复数据索引从所述源文件中确定所述源文件与所述目标文件间的重复数据;及将所述重复数据以及所述差异数据进行拼接,以生成所述目标文件。

【技术特征摘要】
1.一种增量更新文件的方法,其特征在于,所述方法应用于客户端,所述方法包括:确定源文件,获取与所述源文件对应的目标文件的校验表;利用所述源文件以及所述校验表对所述源文件与目标文件的差异进行校验;根据校验的结果生成重复数据索引和差异数据索引;利用所述差异数据索引从服务端下载所述源文件与所述目标文件间的差异数据,及利用所述重复数据索引从所述源文件中确定所述源文件与所述目标文件间的重复数据;及将所述重复数据以及所述差异数据进行拼接,以生成所述目标文件。2.根据权利要求1所述的方法,其特征在于,所述校验表中包括所述目标文件各个分块对应的校验值,所述目标文件各个分块的块长为n个字节,n为正整数;所述利用所述源文件以及所述校验表对所述源文件与目标文件的差异进行校验,包括:将所述源文件的前n个字节确定为待校验分块,计算所述待校验分块的校验值,查找所述校验表中是否存在与所述待校验分块的校验值相同的校验值,获得查找结果;如果所述查找结果为所述校验表中存在与所述待校验分块的校验值相同的校验值,则将所述待校验分块之后的n个字节确定为待检验分块,重复执行计算所述待校验分块的校验值,查找所述校验表中是否存在与所述待校验分块的校验值相同的校验值,获得查找结果;如果所述查找结果为校验表中不存在与所述待校验分块的校验值相同的校验值,则将所述待校验分块去除第一个字节,并将该去除的第一个字节之后的n个字节确定为待检验分块,重复执行计算所述待校验分块的校验值,查找所述校验表中是否存在与所述待校验分块的校验值相同的校验值,获得查找结果。3.根据权利要求2所述的方法,其特征在于,所述根据校验的结果生成重复数据索引和差异数据索引,包括:如果所述查找结果为所述校验表中存在与所述待校验分块的校验值相同的校验值,则将匹配校验值对应的目标文件分块的标识确定为重复数据索引,所述匹配校验值为所述校验表中与所述待校验分块的校验值相同的校验值;在所述源文件被校验完成后,将所述校验表中未被确定为重复数据索引的目标文件分块的标识确定为差异数据索引。4.根据权利要求2所述的方法,其特征在于,所述计算所述待校验分块的校验值,查找所述校验表中是否存在与所述待校验分块的校验值相同的校验值,包括:计算所述待校验分块的第一弱校验值,在所述校验表中查找是否存在与所述待校验分块的第一弱校验值相同的第一弱校验值;如果在所述校验表中存在与所述待校验分块的第一弱校验值相同的第一弱校验值,计算所述待校验分块的第二弱校验值,在所述校验表中查找是否存在与所述待校验分块的第二弱校验值相同的第二弱校验值;如果在所述校验表中存在与所述待校验分块的第二弱校验值相同的第二弱校验值,计算所述待校验分块的强校验值,在所述校验表中查找是否存在与所述待校验分块的强校验值相同的强校验值。5.根据权利要求4所述的方法,其特征在于,所述获得查找结果,包括:如果在所述校验表中不存在与所述待校验分块的第一弱校验值相同的第一弱校验值,或者,如果在所述校验表中不存在与所述待校验分块的第二弱校验值相同的第二弱校验值,或者,如果在所述校验表中不存在与所述待校验分块的强校验值相同的强校验值,将查找结果确定为校验表中不存在与所述待校验分块的校验值相同的校验值;如果在所述校验表中存在与所述待校验分块的强校验值相同的强校验值,将所述查找结果确定为校验表中存在与所述待校验分块的校验值相同的校验值。6.根据权利要求4所述的方法,其特征在于,将所述源文件的前n个字节确定为待校验分块之后,所述计算所述待校验分块的第一弱校验值,包括:按照Adler32算法计算所述待校验分块的第一校验和,将所述待校验分块的第一校验和取模后生成所述待校验分块的第一弱校验值;将所述源文件的前n个字节确定为待校验分块之后,所述计算所述待校验分块的第二弱校验值,包括:按照Adler32算法计算所述待校验分块的第二校验和,将所述待校验分块的第二校验和取模后生成所述待校验分块的第二弱校验值。7.根据权利要求6所述的方法,其特征在于,将所述待校验分块去除第一个字节,并将该去除的第一个字节之后的n个字节确定为待检验分块之后,所述计算所述待校验分块的第一弱校验值,包括:将第一值减去第二值得到第三值,所述第一值为所述待校验分块之前一个待校验分块的第一校验和,所述第二值为所述待校验分块之前一个待校验分块的第一个字节值;将所述第三值加上第四值得到所述待校验分块的第一校验和,所述第四值为所述待校验分块的最后一个字节值;将所述待校验分块的第一校验和取模后生成所述待校验分块的第一弱校验值。8.根据权利要求6所述的方法,其特征在于,将所述待校验分块去除第一个字节之后的n个字节确定为待检验分块之后,所述计算所述待校验分块的第二弱校验值,包括:将第五值乘以n得到第六值,所述第五值为所述待校验分块之前一个待检验分块的第一个字节值;将第七值减去所述第六值得到第八值,所述第七值为所述待校验分块之前一个待校验分块的第二校验和;将所述第八值加上第九值得到所述待校验分块的第二校验和,所述第九值为所述待校验分块的第一校验和;将所述待校验分块的第二校验和取模后生成所述待校验分块的第二弱校验值。9.根据权利要求1-8任一项所述的方法,其特征在于,所述校验表为二级哈希表。10.一种增量更新文件的装置,其特征在于,所述装置应用于客户端,所述装置包括:获取单元,用于确定源文件,获取与所述源文件对应的目标文件的校验...

【专利技术属性】
技术研发人员:颜泰国
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1