CN103118019A - 一种基于去重的文件网络复制方法 - Google Patents

一种基于去重的文件网络复制方法 Download PDF

Info

Publication number
CN103118019A
CN103118019A CN2013100268650A CN201310026865A CN103118019A CN 103118019 A CN103118019 A CN 103118019A CN 2013100268650 A CN2013100268650 A CN 2013100268650A CN 201310026865 A CN201310026865 A CN 201310026865A CN 103118019 A CN103118019 A CN 103118019A
Authority
CN
China
Prior art keywords
fingerprint
file
computer
xcopy
local
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
Application number
CN2013100268650A
Other languages
English (en)
Other versions
CN103118019B (zh
Inventor
李旭东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nankai University
Original Assignee
Nankai University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nankai University filed Critical Nankai University
Priority to CN201310026865.0A priority Critical patent/CN103118019B/zh
Publication of CN103118019A publication Critical patent/CN103118019A/zh
Application granted granted Critical
Publication of CN103118019B publication Critical patent/CN103118019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于去重的文件网络复制方法,包括:文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;文件请求方向文件服务方发送请求获取指定文件以及分块指纹协议;文件服务方以特定指纹协议计算待传输文件的块指纹序列,并发送给文件请求方;文件请求方针对指纹信息序列依次查找本地指纹库,将所有不存在的指纹序列所对应的数据块编号序列发送给文件服务方,文件服务方只需依次将这些数据块发送给文件客户方;文件客户方将依次接收这些数据块并结合本地重复存储数据块最终完成文件网络复制。本发明能够有效地减少文件网络复制时的不必要的网络流量。

Description

一种基于去重的文件网络复制方法
技术领域
本发明属于计算机领域,主要关注减少文件网络复制时的网络流量。
背景技术
目前基于去重的文件网络复制主要包括文件粒度的去重,和数据块粒度的去重,其中后者应用时往往采用特定的数据块大小和特定的指纹算法。本发明引入分块指纹协议动态确认指纹,从而可更有效地减少文件网络复制时网络流量。
发明内容
本发明目的是为了减少文件网络复制时的网络流量。本发明给出一种基于去重的文件网络复制方法,通过采用多数据块粒度、多指纹算法的分块指纹协议来确定具体的指纹序列,以及文件数据实际复制前待传输数据块编号序列确认机制。
本发明提供的基于去重的文件网络复制方法,包括具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
第11、文件请求方计算机在本地建立待复制文件的副本文件;
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
第14、文件复制结束。
其中,
按照本发明提供的建立方法,第1步骤所述的“多粒度块、多指纹算法”的分块指纹,即同一个文件按照多个数据块大小及多种指纹算法进行分块指纹计算,并存储在本地指纹库中;块粒度默认包括文件粒度。
按照本发明提供的建立方法,第2步骤所述的“分块指纹协议”,包括分块大小集合、指纹算法集合;文件请求方计算机向文件服务方计算机发送用来计算指纹的分块大小和指纹算法;文件服务方计算机根据自身情况选择其中的一种分块大小和指纹算法,即为第5步、第6步中的特定指纹协议。
按照本发明提供的建立方法,文件请求方计算机和文件服务方计算机在实际数据块传输之前需要根据待传输文件的指纹序列和文件请求方计算机端指纹库来确定具体的待传输数据块编号序列;“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
附图说明
图1是本发明中文件网络复制流程图。
具体实施方式
本发明提供了一种基于去重的文件网络复制方法。
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明。本发明所提供的基于一种基于去重的文件网络复制方法具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
粒度大小可以选择1K,4K,8K,1M,32M等,根据本地文件大小分布来确定若干个分块粒度大小;
指纹算法包括MD5,SHA-1,SHA-256等,并且可以引入新的指纹算法。
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
分块指纹协议实例:{(1K,MD5),(4K,MD5),(1M,SHA-1)}
文件请求方计算机向文件服务方计算机发送的文件传输请求实例:
{{/shared/abc.tgz},{(1K,MD5),(4K,MD5),(1M,SHA-1)}}
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
具体到本实例,待复制文件的全路径文件名为/shared/abc.tgz;分块指纹协议为{(1K,MD5),(4K,MD5),(1M,SHA-1)}
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
文件服务方计算机结合文件请求方计算机发过来的分块指纹协议实例{(1K,MD5),(4K,MD5),(1M,SHA-1)},以及文件服务方计算机端已有指纹库情况,可以选择特定指纹协议,例如特定指纹协议{(1M,SHA-1)}
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
单个“分块指纹值”格式为(数据块编号,指纹)实例如下:
{(1,指纹1),(2,指纹2),(3,指纹3),…}
具体到本实例,文件服务方计算机向文件请求方计算机发送的信息如下:
{{4M},{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)},{(1M,SHA-1)}}
其中,{4M}为待复制文件的大小;{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)}为“指纹序列”;{(1M,SHA-1)}为特定指纹协议。
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
具体到本实例,文件请求方计算机从文件服务方计算机接收到信息如下:
{{4MB},{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)},{(1M,SHA-1)}}
其中,{4MB}为待复制文件的大小;{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)}为“指纹序列”;{(1M,SHA-1)}为特定指纹协议。
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
具体到本实例,文件请求方计算机本地指纹库中存在指纹2、指纹4;文件请求方计算机本地指纹库中不存在待复制文件中编号1的数据块的指纹1、待复制文件中编号3的数据块的指纹3。
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
具体到本实例,文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机的信息如下:{1,3}
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
具体到本实例,文件服务方计算机从文件请求方计算机接收到的数据块编号序列实例:{1,3}
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
具体到本实例,文件服务方计算机向文件请求方计算机依次发送待复制文件中数据块编号为1,3的数据块。
第11、文件请求方计算机在本地建立待复制文件的副本文件;
文件请求方计算机在本地计算机上建立待复制文件的副本文件,副本文件的大小为待复制文件大小。
具体到本实例,文件请求方计算机在本地计算机上建立副本文件abc.tgz;副本文件abc.tgz的大小为4MB。
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
文件请求方计算机从文件服务方计算机依次接收数据块编号为1,3的数据块,并将这些数据块存放到“本地副本文件”abc.tgz的相应位置,每个数据块在“本地待复制文件”的起始位置由“数据块编号”和“分块大小”(具体到本实例为1MB)决定,数据块大小由实际接收到的数据块大小决定。
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,具体到本实例,即待复制文件中的数据编号2、4。文件请求方计算机将这些数据块存放到“本地副本文件”abc.tgz的相应位置,每个数据块在“本地待复制文件”的起始位置由“数据块编号”和“分块大小”(具体到本实例为1MB)决定。
第14、文件复制结束。
文件请求方计算机关闭“本地副本文件”abc.tgz,完成将文件服务方计算机中/shared/abc.tgz拷贝到文件请求方计算机的abc.tgz。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于去重的文件网络复制方法,其特征在于,所述方法包括具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
第11、文件请求方计算机在本地建立待复制文件的副本文件;
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
第14、文件复制结束。
2.根据权利要求1所述的方法,其特征在于,第1步骤所述的“多粒度块、多指纹算法”的分块指纹,即同一个文件按照多个数据块大小及多种指纹算法进行分块指纹计算,并存储在本地指纹库中;块粒度默认包括文件粒度。
3.根据权利要求1所述的方法,其特征在于,第2步骤所述的“分块指纹协议”,包括分块大小集合、指纹算法集合;文件请求方计算机向文件服务方计算机发送用来计算指纹的分块大小和指纹算法;文件服务方计算机根据自身情况选择其中的一种分块大小和指纹算法,即为第5步、第6步中的特定指纹协议。
4.根据权利要求1所述的方法,其特征在于,文件请求方计算机和文件服务方计算机在实际数据块传输之前需要根据待传输文件的指纹序列和文件请求方计算机端指纹库来确定具体的待传输数据块编号序列;“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
CN201310026865.0A 2013-01-24 2013-01-24 一种基于去重的文件网络复制方法 Active CN103118019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310026865.0A CN103118019B (zh) 2013-01-24 2013-01-24 一种基于去重的文件网络复制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310026865.0A CN103118019B (zh) 2013-01-24 2013-01-24 一种基于去重的文件网络复制方法

Publications (2)

Publication Number Publication Date
CN103118019A true CN103118019A (zh) 2013-05-22
CN103118019B CN103118019B (zh) 2016-03-16

Family

ID=48416293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310026865.0A Active CN103118019B (zh) 2013-01-24 2013-01-24 一种基于去重的文件网络复制方法

Country Status (1)

Country Link
CN (1) CN103118019B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103609091A (zh) * 2013-06-24 2014-02-26 华为技术有限公司 一种数据传输的方法和装置
CN103631933A (zh) * 2013-12-06 2014-03-12 中国科学院计算技术研究所 一种面向分布式去重系统的数据路由方法
CN104468028A (zh) * 2013-09-25 2015-03-25 华为技术有限公司 一种数据编解码方法及设备
CN105653984A (zh) * 2015-12-25 2016-06-08 北京奇虎科技有限公司 文件指纹校验方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033962A (zh) * 2010-12-31 2011-04-27 中国传媒大学 一种快速去重的文件数据复制方法
CN102065098A (zh) * 2010-12-31 2011-05-18 网宿科技股份有限公司 网络节点之间数据同步的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033962A (zh) * 2010-12-31 2011-04-27 中国传媒大学 一种快速去重的文件数据复制方法
CN102065098A (zh) * 2010-12-31 2011-05-18 网宿科技股份有限公司 网络节点之间数据同步的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
崔兴华,杜晓黎,赵晓睿: "重复数据检测在多版本数据备份中的应用", 《计算机应用研究》, vol. 26, no. 1, 31 January 2009 (2009-01-31), pages 206 - 220 *
廖海生,赵跃龙: "基于MD5算法的重复数据删除技术的研究与改进", 《计算机测量与控制》, 5 February 2013 (2013-02-05), pages 635 - 638 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103609091A (zh) * 2013-06-24 2014-02-26 华为技术有限公司 一种数据传输的方法和装置
CN103609091B (zh) * 2013-06-24 2017-01-11 华为技术有限公司 一种数据传输的方法和装置
CN104468028A (zh) * 2013-09-25 2015-03-25 华为技术有限公司 一种数据编解码方法及设备
CN104468028B (zh) * 2013-09-25 2018-11-16 华为技术有限公司 一种数据编解码方法及设备
CN103631933A (zh) * 2013-12-06 2014-03-12 中国科学院计算技术研究所 一种面向分布式去重系统的数据路由方法
CN105653984A (zh) * 2015-12-25 2016-06-08 北京奇虎科技有限公司 文件指纹校验方法及装置
CN105653984B (zh) * 2015-12-25 2019-04-19 北京奇虎科技有限公司 文件指纹校验方法及装置

Also Published As

Publication number Publication date
CN103118019B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN107332876B (zh) 区块链状态的同步方法及装置
US20200374288A1 (en) Block chain-based multi-chain management method and system, electronic device, and storage medium
CN109246176B (zh) 软件定义网络中基于区块链的多控制器同步方法及装置
CN102651775B (zh) 基于云计算的多租户共享对象管理的方法、设备及系统
CN108924250B (zh) 基于区块链的业务请求处理方法、装置和计算机设备
EP2765524B1 (en) Data processing method and device in cluster system
CN103944988A (zh) 一种适用于云存储的重复数据删除系统和方法
CN109189751A (zh) 基于区块链的数据同步方法及终端设备
CN109040337B (zh) 一种信息查询方法、边缘服务器及信息查询系统
CN108153757A (zh) 一种哈希表管理的方法和装置
CN108200208A (zh) 基于云计算的物流区块链共识算法
CN105843933B (zh) 分布式内存列式数据库的索引建立方法
CN104866430B (zh) 结合主从备份和纠删码的内存计算系统高可用优化方法
CN101313495A (zh) 数据同步方法、系统及装置
CN108833610B (zh) 一种信息更新方法、装置及系统
CN105069111A (zh) 云存储中基于相似性的数据块级数据去重方法
CN103246749A (zh) 面向分布式计算的矩阵数据库系统及其查询方法
CN103118019A (zh) 一种基于去重的文件网络复制方法
CN103198100B (zh) 一种多设备间文件同步的重命名处理方法及系统
CN102946411A (zh) 网络同步系统
CN105653473A (zh) 基于二元标识的缓存数据访问方法及装置
CN105956032A (zh) 缓存数据同步方法、系统和装置
CN105471955A (zh) 分布式文件系统的写方法、客户端设备及分布式文件系统
CN106062749A (zh) 使用查询数据提供流行率信息
CN110618989B (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