CN104639606A - 一种差异化对比分块的优化方法 - Google Patents
一种差异化对比分块的优化方法 Download PDFInfo
- Publication number
- CN104639606A CN104639606A CN201410849426.4A CN201410849426A CN104639606A CN 104639606 A CN104639606 A CN 104639606A CN 201410849426 A CN201410849426 A CN 201410849426A CN 104639606 A CN104639606 A CN 104639606A
- Authority
- CN
- China
- Prior art keywords
- block
- file
- differentiation
- list
- piecemeal
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种差异化对比分块的优化方法,该方法基于rsync的算法对数据分块进行差异化比对的优化方法,对不同大小的块进行分类比对,减少比对次数,提高比对的效率,把差异化的块合并为大块,减少文件操作次数,提高系统性能。
Description
技术领域
本发明涉及一种数据块对比技术,具体涉及一种差异化对比分块的优化方法。
背景技术
云计算技术在实际中得到了广泛的应用,云存储技术也得到了快速的发展。在现有网络环境下,提出了将不同用户存储的数据快速地保存到数据中心服务器上的要求。因为数据量大,网络速度又低造成了用户存储数据到云端的体验不是很好。
云盘就是由这种将云计算从概念转化为实际产品应用形势下诞生的,它是云存储的一个应用,怎样减少网络传输量是该系统需要重点处理的一个问题。
Rsync是一种比较成熟的和应用很广泛的同步文件的一个高效算法,采用分块和强弱校验值进行差异化比对,但是一般它用来对完整的文件进行比对,找出差异化数据,然后根据差异化数据还原成一个完整的文件。而由于云盘系统采用了分块存储技术,对rsync算法来说就有点不适用,因为采用分块保存的数据会有很多块碎片,不是固定大小的块,而rsync算法主要是针对固定大小的块进行比对,只有最后一块的大小会比固定的大小块要小,这样就会造成rsync的比对效率低。
由于分块存储,在比对中产生的块碎片也会随着时间的增加变得越来越多,这样就造成系统运行的时间越长,差异化比对的性能就越差,从而造成整个企业云盘的性能会越来越差,用户的体验也就会越来越不好。这样就会让该系统的后期的维护成本很高,用户对该产品的反响差,造成该产品不能达到预期的推广应用。
发明内容
为了克服上述现有技术的不足,本发明提供一种差异化对比分块的优化方法。该方法提出基于rsync的算法对数据分块进行差异化比对的优化算法,提高比对的效率,满足云存储的实际的数据能够被打乱并在云端的任何部分被拼接的需求。
为了实现上述发明目的,本发明采取如下技术方案:
一种差异化对比分块的优化方法,该方法步骤如下:
(1)从服务端取得文件A的当前版本的块信息队列或所有版本的块信息队列;
(2)把文件A以N0、N1、N2…Nm由小至大的顺序分块,并按块大小分类,形成N0到Nm的队列;
(3)本地文件B按N0的块大小分块并计算出每个块的总和校验码和md5值得到块信息列表B0_block_list;
(4)遍历B0_block_list,用rsync方法把遍历后的块信息与文件A的N0队列中的块信息作差异化对比;
(5)把文件B中没有匹配的块组成临时文件B1,把文件B1按N1的块大小进行分块,并计算出每个块的总和校验码和md5值得到B1_block_list;
(6)遍历B1_block_list,用rsync方法把遍历后的块信息与文件A的N1队列中的块信息作差异化对比;
(7)循环步骤(3)到步骤(6)以此类推直到以Nm为大小进行比对,找出文件B和文件A没有匹配的差异化块;
(8)合并差异化块;
(9)计算合并后的差异化块的总和校验码和md5值,得到有差异化块信息列表。
本发明提供的优选技术方案中,所述步骤(4)rsync方法的步骤如下:
A.分别对文件A和B分割成连续不重叠的大小为S字节的数据块;
B.分别对文件A和B每个数据块计算出两个校验值;
C.文件B每个数据块的校验值与文件A每个数据块的校验值做比较,得出不匹配的数据块。
本发明提供的第二优选技术方案中,所述两个检验值包括32位弱滚动检验和128位MD5校验。
本发明提供的第三优选技术方案中,所述32位弱滚动检验使用滚动检验算法。
本发明提供的第四优选技术方案中,所述步骤(8)合并差异化块若以Nm为大小的差异化块是相邻的块则合并大块,最大的合并块大小不能大于N0。
与最接近的现有技术比,本发明提供的技术方案具有如下优异效果:
本发明对不同大小的数据块进行分类比对,减少比对的次数,提高比对效率;把有差异化的块尽量合并为大块,减少文件操作次数,提高系统性能;尽可能传送大块,节省网络传送次数,提高网络利用率;只传输有差异化的块,节省数据传输的网络带宽,降低带宽成本。大大降低了系统的后期的维护成本,极高提升了用户对该产品的反响度,使产品可以达到预期的推广应用效果。
附图说明
图1是差异化对比分块优化方法的流程图
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1所示,差异化对比分块的优化方法,具体步骤如下:
(1)从服务端取得文件A的当前版本的块信息队列或所有版本的块信息队列;
(2)把文件A先后以N0、N1、N2…Nm的块大小进行分块,并按块大小进行分类,形成N0到Nm的队列;
(3)本地文件B按N0的块大小进行分块并计算出每个块的checksum(总和校验码)和md5值得到块信息列表B0_block_list;
(4)遍历B0_block_list,把遍历后的块信息与文件A的N0队列中的块信息用rsync方法进行差异化对比;
(5)把文件B中没有匹配的块组成临时文件B1,把文件B1按N1的块大小进行分块,并计算出每个块的checksum(总和校验码)和md5值得到B1_block_list;
(6)遍历B1_block_list,把遍历后的块信息与文件A的N1队列中的块信息用rsync方法进行差异化对比;
(7)循环步骤(3)到步骤(6)以此类推直到以Nm为大小进行比对,找出文件B和文件A没有匹配的块,这些块就是差异化块;
(8)合并差异化块,合并差异化块若以Nm为大小的差异化块是相邻的块则合并大块,最大的合并块大小不能大于N0;
(9)计算合并后的差异化块的checksum(总和校验码)和md5值,得到有差异化块信息列表。
步骤(4)rsync方法的步骤如下:
A.分别对文件A和B分割成连续不重叠的大小为S字节的数据块;
B.分别对文件A和B每个数据块计算出两个校验值;
C.文件B每个数据块的校验值与文件A每个数据块的校验值做比较,得出不匹配的数据块。
两个检验值包括32位弱滚动检验和128位MD5校验。
32位弱滚动检验使用滚动检验算法。
滚动检验算法用于快速计算数据块的校验值。它是一种弱校验算法,采用的是MarkAdler的adler-32校验,它的定义如下:
s(k,l)=a(k,l)+216b(k,l)
上面公式中,s(k,l)表示数据块Xk,...,Xl的滚动校验值,为了简化以及计算速度考虑,M取值为216。这种校验计算公式具有一个非常关键的特性,那就是后续校验值可以通过递推关系高效地计算获得。
a(k+1,l+1)=(a(k,l)-Xk+Xl+1)mod M
b(k+1,l+1)=(b(k,l)-(l-k+1)Xk+a(k+1,l+1))mod M
s(k+1,l+1)=a(k+1,l+1)+216b(k+1,l+1)
因此,给定X1,...,Xn的校验值,X1以及Xn+1,我们就可以快速地计算出X2,...,Xn+1校验值。这样,利用这种性质我们就可以高效地计算数据块连续校验值,大幅减少checksum计算量。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种差异化对比分块的优化方法,其特征在于,该方法步骤如下:
(1)从服务端取得文件A的当前版本的块信息队列或所有版本的块信息队列;
(2)把文件A以N0、N1、N2…Nm由小至大的顺序分块,并按块大小分类,形成N0到Nm的队列;
(3)本地文件B按N0的块大小分块并计算出每个块的总和校验码和md5值,从而得到块信息列表B0_block_list;
(4)遍历B0_block_list,用rsync方法把遍历后的块信息与文件A的N0队列中的块信息作差异化对比;
(5)把文件B中没有匹配的块组成临时文件B1,把文件B1按N1的块大小进行分块,并计算出每个块的总和校验码和md5值,从而得到B1_block_list;
(6)遍历B1_block_list,用rsync方法把遍历后的块信息与文件A的N1队列中的块信息作差异化对比;
(7)循环步骤(3)到步骤(6)以此类推直到以Nm为大小进行比对,找出文件B和文件A没有匹配的差异化块;
(8)合并差异化块;
(9)计算合并后的差异化块的总和校验码和md5值,得到有差异化块信息列表。
2.根据权利要求1所述差异化对比分块的优化方法,其特征在于,所述步骤(4)rsync方法的步骤如下:
A.分别对文件A和B分割成连续不重叠的大小为S字节的数据块;
B.分别对文件A和B每个数据块计算出两个校验值;
C.文件B每个数据块的校验值与文件A每个数据块的校验值做比较,得出不匹配的数据块。
3.根据权利要求2所述差异化对比分块的优化方法,其特征在于,所述两个检验值包括32位弱滚动检验和128位MD5校验。
4.根据权利要求3所述差异化对比分块的优化方法,其特征在于,所述32位弱滚动检验使用滚动检验算法。
5.根据权利要求1所述差异化对比分块的优化方法,其特征在于,所述步骤(8)合并差异化块若以Nm为大小的差异化块是相邻的块则合并大块,最大的合并块大小不能大于N0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849426.4A CN104639606B (zh) | 2014-12-29 | 2014-12-29 | 一种差异化对比分块的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849426.4A CN104639606B (zh) | 2014-12-29 | 2014-12-29 | 一种差异化对比分块的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639606A true CN104639606A (zh) | 2015-05-20 |
CN104639606B CN104639606B (zh) | 2018-03-16 |
Family
ID=53217907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410849426.4A Active CN104639606B (zh) | 2014-12-29 | 2014-12-29 | 一种差异化对比分块的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639606B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786563A (zh) * | 2016-02-19 | 2016-07-20 | 联州(上海)信息科技有限公司 | 实现软件在线更新的装置、系统和方法 |
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968212A (zh) * | 2006-11-24 | 2007-05-23 | 中兴通讯股份有限公司 | 流分类中基于硬件的差异化组织方法 |
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
US8214517B2 (en) * | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
CN102571709A (zh) * | 2010-12-16 | 2012-07-11 | 腾讯科技(北京)有限公司 | 文件上传的方法、客户端、服务器及系统 |
US8756656B1 (en) * | 2008-09-30 | 2014-06-17 | Symantec Corporation | Systems and methods for creating and synchronizing security metadata within synchronized-data networks |
-
2014
- 2014-12-29 CN CN201410849426.4A patent/CN104639606B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968212A (zh) * | 2006-11-24 | 2007-05-23 | 中兴通讯股份有限公司 | 流分类中基于硬件的差异化组织方法 |
US8214517B2 (en) * | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
US8756656B1 (en) * | 2008-09-30 | 2014-06-17 | Symantec Corporation | Systems and methods for creating and synchronizing security metadata within synchronized-data networks |
CN102571709A (zh) * | 2010-12-16 | 2012-07-11 | 腾讯科技(北京)有限公司 | 文件上传的方法、客户端、服务器及系统 |
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786563A (zh) * | 2016-02-19 | 2016-07-20 | 联州(上海)信息科技有限公司 | 实现软件在线更新的装置、系统和方法 |
CN105786563B (zh) * | 2016-02-19 | 2018-11-09 | 联州(上海)信息科技有限公司 | 实现软件在线更新的装置、系统和方法 |
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
CN109815452B (zh) * | 2018-12-25 | 2023-04-07 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104639606B (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marques et al. | On the generation of enhanced lookup tables for wheel-rail contact models | |
CN103136239B (zh) | 一种基于张量重建的交通数据丢失恢复方法 | |
CN102624871A (zh) | 一种基于分布式企业服务总线实现的远程文件同步方法 | |
CN110971560B (zh) | 一种qam信号调制方法、装置及电子设备 | |
CN103812949A (zh) | 一种面向实时云平台的任务调度与资源分配方法及系统 | |
CN106202213A (zh) | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 | |
Miller et al. | Lowering the quantum gate cost of reversible circuits | |
CN104731899A (zh) | 一种基于异步处理的数据高并发处理方法 | |
CN104639606A (zh) | 一种差异化对比分块的优化方法 | |
CN117014520B (zh) | 一种基于压缩算法的数据快速传输方法 | |
CN115357351A (zh) | 算力网络调度方法、装置、系统、设备及介质 | |
CN117454495A (zh) | 一种基于建筑草图轮廓序列的cad矢量模型生成方法及装置 | |
CN104408232A (zh) | 一种高层次综合中的组合逻辑优化方法及系统 | |
CN117495989A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN105681425B (zh) | 基于分布式存储系统的多节点修复方法及其系统 | |
CN105023021A (zh) | 一种基于主方向模板的特征匹配方法 | |
US10863005B2 (en) | Data transmitting program, data transmitting device, and data transmitting method | |
CN103605768A (zh) | 一种提高存储系统间海量文件同步速度的方法 | |
CN104239686B (zh) | 一种基于内存计算在全面预算中实现公式计算的方法 | |
Li et al. | Short-term traffic flow forecasting based on SVR | |
CN109388460A (zh) | 一种提升客户端应用拉取首页数据效率的方法 | |
CN103208996A (zh) | 准循环码的频域编码方法 | |
CN104467870A (zh) | 一种结构化数据的传输方法、装置及高速铁路系统 | |
CN104394412A (zh) | 一种基于转换压缩的最大误差图像压缩方法 | |
CN103714591A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220725 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |