[发明专利]一种利用数据差异算法生成多版本文件的方法有效
申请号: | 201310586671.6 | 申请日: | 2013-11-20 |
公开(公告)号: | CN103617215A | 公开(公告)日: | 2014-03-05 |
发明(设计)人: | 叶佑群 | 申请(专利权)人: | 上海爱数软件有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王民盛;王丽琴 |
地址: | 200072 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 数据 差异 算法 生成 版本 文件 方法 | ||
1.一种利用数据差异算法生成多版本文件的方法,其特征在于,包括:
A、按照预先确定的数据块长度,对参照版本从头至尾依次计算每个数据块的数据摘要值;
B、计算在各个偏移量下,与参照版本相同长度的差异版本的数据块的摘要值,将计算得到的差异版本的数据块的摘要值与参照版本的数据块的摘要值进行对比,根据对比结果提取出差异版本中的差异数据,并生成用于存储所述差异数据的差异记录文件。
2.根据权利要求1所述的方法,其特征在于,所述数据块长度根据如下公式确定:其中,中括号表示取整,L表示数据块长度,单位为字节,SIZE表示参照版本文件大小,单位为字节;
若根据公式计算出的L小于200字节,则将数据块长度设置为200字节,若根据公式计算出的L大于512K字节,则将数据块长度设置为512K字节。
3.根据权利要求1所述的方法,其特征在于,步骤A所述计算每个数据块的数据摘要值包括:对每一个数据块,计算一个长度为N1的快速摘要,以及计算一个长度为N2的慢速摘要,其中N1<N2;快速摘要值相同是数据块相同的必要非充分条件,慢速摘要值相同是数据块相同的充分必要条件;
步骤B包括:
B1、生成用于存储参照版本的数据块摘要对的哈希数组H,创建一个空白的差异记录文件,然后向这个文件写入16字节的空内容;然后创建一个链表结构K,用于记录差异数据块的比较结果;
B2、将差异版本的文件偏移设置为0;
B3、判断从差异版本当前偏移处开始向后的数据长度是否小于L,若是,执行步骤B4,否则执行步骤B5;
B4、将从差异版本当前偏移处开始向后的数据记录到差异记录文件中,提取差异记录文件当前大小以及链表元素的个数后,将链表K写入到差异记录文件的末尾;然后将文件大小及元素个数写入到差异记录文件中开头的预留字节中,并结束本流程;
B5、从差异版本当前偏移处开始向后读取长度L的数据块,计算该数据块的快速摘要;
B6、判断是否在哈希数组H中查找与之相同的快速摘要,若找到,执行步骤B8,否则执行步骤B7;
B7、将差异版本的偏移向后移动一个字节,并返回步骤B3;
B8、计算该数据块的慢速摘要,在已经找到快速摘要的哈希数组中的链表中查找是否有相同的慢速摘要。如果找到,执行步骤B9,否则,执行步骤B7;
B9、将该数据块之前已经滑过的数据作为差异数据写入到差异记录文件中,并且生成一个数据块记录项,其类型为“不同”,所述数据块记录项记录这一差异数据在差异记录文件中的偏移,以及数据块的长度,并将记录项插入到链表K的末尾;
B10、将这一个相同数据块的信息,生成一个数据块记录项,其类型为“相同”,所述数据块记录项记录本块数据在参照版本中的偏移以及块长度L,然后将该数据块记录项插入到链表K的末尾;
B11、将差异版本的偏移向后移动L,然后转至步骤B3。
4.根据权利要求3所述的方法,其特征在于,所述N1=4,N2=16。
5.根据权利要求1所述的方法,其特征在于,步骤B之后进一步包括:
创建一个空的恢复文件;
从差异记录文件中提取数据块记录项;
从数据块记录项中读取数据的偏移以及数据块的长度,然后判断数据块记录项中的数据块类型,若为“不同”,则从差异记录文件中从偏移处读取相应长度字节的块数据,然后写入恢复文件中;若为“相同”,则从参照版本中从偏移处读取相应长度字节的块数据,然后写入恢复文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数软件有限公司,未经上海爱数软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310586671.6/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置