论文部分内容阅读
当前人们享受信息化带来的便利的同时也深受海量数据难以管理的困扰,个人文件同步系统的产生和发展为这个问题带来一个比较好的解决办法。这种文件同步系统通过将个人文件夹内的数据实时同步到远程的服务端,为用户提供了一种安全,可靠,便捷的文件管理方式。 本文在深入研究了差量同步算法以及相关的文件切块算法,文件相似度算法,哈希算法的基础上,设计了一种两轮交互的差量同步算法VegaSync,并以此算法为核心构建了一套完善高效的文件同步服务系统。本文的主要工作如下: 1.提出一种两轮的差异文件同步算法。本文在深入研究经典的Rsync算法以及文件差量同步算法中涉及到的文件切块方式、文件相似度计算、数据块哈希值计算等问题的基础上,提出一种两轮交互的VegaSync算法。该算法第一轮利用基于内容的分块算法对文件进行分块,利用编辑距离算法计算文件之间的相似度并定位差异数据块,第二轮首先判断待同步文件的文件相似度,若文件相似度大于指定的阈值,则利用Rsync算法模块同步差异数据块。否则直接传输整个文件。 2.设计实现VegaDisk文件同步系统。本文参考主流文件同步系统Dropbox,Google drive等软件,设计实现了由Windows客户端,服务器,数据中心构成的VegaDisk文件同步系统,将VegaSync应用到系统中,高效地实现了文件的实时同步,版本管理,文件分享等功能。 3.对VegaSync算法进行性能测试。VegaSync算法第一轮以很低的网络和计算开销粗略地确定了待同步文件之间的差异数据块和文件相似度,第二轮根据文件相似度的高低来选择直接传输或是差量传输,有效地节省了网络和计算开销。在性能测试中本文从网络带宽消耗,同步时间,内存、CPU占用等方面对VegaSync算法和Rsync算法进行了对比测试,结果表明VegaSync在网络带宽消耗上较Rsync有30%的提升,CPU利用率上比Rsync低10%。