[发明专利]一种基于内容分块的远程文件实时更新方法有效
申请号: | 201410029703.7 | 申请日: | 2014-01-22 |
公开(公告)号: | CN103729225A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 廖湘科;李珊珊;刘晓东;彭绍亮;谢欣伟;贾周阳;董德尊;张菁;林彬;孔志印;刘磊 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;H04L29/08 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于内容分块的远程文件实时更新方法,目的是为分布式存储系统提供一种低网络传输开销的文件增量更新方法,使得分布式存储系统能以较低的开销支持文件随机写。技术方案是先对原文件Fold文件分块存储,采用Hash算法为每个数据块计算摘要,再对数据块的开头和结尾各采用rabin-fingerprinting算法计算一个指纹,采用基于CDC的数据分块方式对照原文件Fold的分块信息,对新文件Fnew分块并采用Hash算法为Fnew每个数据块计算摘要,对比Fold数据块和Fnew数据块的摘要,找出发生变化数据块,将需删除的数据块从Fold删除,将需更新的数据块添加到Fold。采用本发明能使得分布式存储系统能以较低的开销支持文件随机写。 | ||
搜索关键词: | 一种 基于 内容 分块 远程 文件 实时 更新 方法 | ||
【主权项】:
一种基于内容分块的远程文件实时更新方法,其特征在于包括以下步骤:第一步,对Fold文件分块存储,方法是采用固定大小分块的策略将文件分成n块,按顺序将文件从前往后划分成大小相同的数据块,数据块的大小K根据应用不同设置,记每一个数据块为chunk1、chunk2、…、chunkn,最后一个数据块chunkn的大小小于或等于其他数据块的大小,n为正整数,n=L/K上取整,其中L为文件大小;第二步,采用Hash算法为chunk1、chunk2、…、chunkn计算摘要,记每一个数据块的摘要为hash1、hash2、…、hashn;再对数据块的开头和结尾各采用rabin‑fingerprinting算法计算一个指纹,方法是:除第一个数据块外每一个数据块选取所属数据块开头48字节的内容,除最后一个数据块外每一个数据块选取结尾48字节的内容,采用rabin‑fingerprinting算法计算每个数据块的指纹值,记这些指纹值为第一数据块结尾指纹finpr‑back1、第二数据块开头指纹finpr‑front2、第二数据块结尾指纹finpr‑back2、…、第n‑1数据块开头指纹finpr‑frontn‑1、第n‑1数据块开头指纹finpr‑backn‑1、第n数据块开头指纹finpr‑frontn;第三步,用户终端从云端服务器下载原始文件Fold和分块信息,并进行更新操作,得到Fnew;第四步,用户终端采用基于CDC的数据分块方式对Fnew分块,采用一个48字节的滑动窗口,窗口长度须与rabin‑fingerprinting的数据块长度一致,从Fnew的起始部分开始执行以下动作:4.1为当前窗口内的48字节的内容采用rabin‑fingerprinting计算一个指纹finpr;4.2把指纹finpr与finpr‑back1、finpr‑back2、…、finpr‑backk、…、finpr‑backn‑1作对比,若存在finpr‑backk与finpr相等,其中1≤k<n,则转入步骤4.3;若不存在finpr‑backk与finpr相等,则判断是否到Fnew的尾部,若到Fnew的尾部则转第五步,如果未到Fnew的尾部,把窗口向后滑动1个字节,并转步骤4.1,其中1≤k<n;4.3把滑动窗口向Fnew的尾部方向滑动48个字节,采用rabin‑fingerprinting算法为窗口内的48字节的内容计算指纹finprnext,并把finprnext和finpr‑frontk+1作对比,若finprnext和finpr‑frontk+1相等,说明当前窗口是分块的边界,从当前窗口的起始地址处分块,其分块的内容为更新后的一个数据块,记为chunki',其中i初始值为1,并在之后分块时进行自增操作,记分块结束时i值为m;若finprnext和finpr‑frontk+1不相等,说明当前窗口不是分块的边界,将窗口向Fnew的起始处滑动47个字节,即相对步骤4.2存在finpr‑backk与finpr相等时的窗口位置向后滑动了1个字节,转步骤4.1;第五步,采用与第二步中相同的Hash算法为更新后的数据块chunk1'、chunk2'、…、chunki'、…、chunkm'计算摘要,得到更新后的每个数据块的摘要hash1'、hash2'、…、hashi'、…、hashm';第六步,对比更新前的数据块序列chunk1、chunk2、…、chunkj、…、chunkn和更新后的数据块序列chunk1'、chunk2'、…、chunki'、…、chunkm',其中1≤i≤m,1≤j≤n,对比数据块的摘要,根据摘要是否相等判断两个数据块是否相同,找出发生变化数据块,方法如下:用curBefore指示当前比较到的更新前文件Fold的数据块的下标,则当前Fold中的数据块为chunkcurBefore,数据块的hash值为hashcurBefore,curAfter指示当前比较到的更新后文件Fnew的数据块的下标,则当前Fnew中的数据块为chunkcurAfter',数据块的hash值为hashcurAfter',curBefore和curAfter初始值都为1,用数组RedundantBlock记录Fold中有但Fnew中没有的数据块编号,即需要删除的数据块编号,用数组NewBlock记录Fold中没有但Fnew中有的数据块编号,即需要添加到Fold中的数据块编号;6.1将hashcurAfter'与数据块chunkcurBefore、chunkcurBefore+1、…、chunkj、…、chunkn的摘要hashcurBefore、hashcurBefore+1、…、hashj、…、hashn进行比较,若存在某个数据块的摘要hashk与hashcurAfter'相等,执行步骤6.2,否则执行步骤6.3;6.2存在hashj与hashcurAfter'相等说明Fold中数据块chunkk与Fnew中数据块chunkcurAfter'是相同的,不需要重新存储,同时也说明Fnew内容中已经不包含Fold的数据块chunkcurBefore、chunkcurBefore+1、…、chunkj‑1,需要删除,将需要删除的数据块编号curBefore、curBefore+1、…、j‑1存入到数组RedundantBlock中;若j不等于原有数据块数量n,执行步骤6.4,否则执行步骤6.5;6.3将新数据块编号curAfter加入数组NewBlock中,curBefore不变,curAfter增加1,若curAfter小于或等于m,执行步骤6.1,否则,执行步骤6.6;6.4为curBefore赋新值j,curAfter增加1,若curAfter小于或等于更新数据块数量m,执行步骤6.1,否则,执行步骤6.6;6.5当j等于n时,将编号curAfter、curAfter+1、…、m加入到数组NewBlock中,执行第七步;6.6当curAfter等于m时,将编号curBefore、curBefore+1、…、n加入到数组RedundantBlock中,执行第七步;第七步,将数组RedundantBlock中记录的数据块从云端服务器Fold文件中删除,将数组NewBlock中记录的数据块从用户终端Fnew文件中通过网络上传到云端服务器,进行文件块的拼接,拼接过程如下:7.1设置变量i指向Fnew数据块和变量j指向Fold数据块,i和j的初值均为1,记新生成文件为F;7.2如果j大于n,转第八步;7.3如果j指向的数据块不在RedundantBlock中记录,则将j指向的数据块加入F,j增1,执行步骤7.2;如果j指向的数据块在RedundantBlock中记录,则j自增到j指向的数据块不在RedundantBlock中记录或j大于n,i自增到i指向的数据块在NewBlock中记录,如果i大于m执行步骤7.2,否则将i指向的数据块加入F,转7.4;7.4变量i自增,如果i指向的数据块在NewBlock中记录,将i指向的数据块加入F,转步骤7.4,否则转步骤7.2。第八步,结束,文件更新完成,文件F即为Fnew在云端的副本。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410029703.7/,转载请声明来源钻瓜专利网。
- 上一篇:一种用于汽轮机排汽缸的导流环
- 下一篇:一体化叶轮
- 内容再现系统、内容提供方法、内容再现装置、内容提供装置、内容再现程序和内容提供程序
- 内容记录系统、内容记录方法、内容记录设备和内容接收设备
- 内容服务系统、内容服务器、内容终端及内容服务方法
- 内容分发系统、内容分发装置、内容再生终端及内容分发方法
- 内容发布、内容获取的方法、内容发布装置及内容传播系统
- 内容提供装置、内容提供方法、内容再现装置、内容再现方法
- 内容传输设备、内容传输方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容发送设备、内容发送方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容再现装置、内容再现方法、内容再现程序及内容提供系统
- 内容记录装置、内容编辑装置、内容再生装置、内容记录方法、内容编辑方法、以及内容再生方法