Rolling Hash about the Rsync

简介: 今天看文献看到一个有趣的算法—Rolling Hash,这个算法可以更新在不同的machine上的两个“similar”的文件,也叫做rsync algorithm,rsync顾名思义:remote sync,远程镜像同步备份,现在在类Unix的系统已经有该种工具,在此我们只说它涉及的核心算法—Rolling Hash。

      今天看文献看到一个有趣的算法—Rolling Hash,这个算法可以更新在不同的machine上的两个“similar”的文件,也叫做rsync algorithm,rsync顾名思义:remote sync,远程镜像同步备份,现在在类Unix的系统已经有该种工具,在此我们只说它涉及的核心算法—Rolling Hash。今天只做简单的介绍和记录,由于时间的关系和知识结构的不完整,留作以后进一步探讨。

      我们想象一个场景:machine A上有一个文件X,machine B上一个类似的文件Y,说类似而不是相同,是这两个文件只有稍许不同(diffs),两个machine之间有一个low-bandwidth high-latency bi-directional 通信链路,现在要实时更新这两个文件,使之相同,就像云端备份一样,本机的数据改变,也要相应地快速地在云端同步,同时不能消耗太多的能量和通信的开销(traffic overload),我们能想到的办法就是copy,但由于是low-bandwidth,所以会想到compress,在copy,但这样效率是非常低的。而这个算法就是解决这样的一个问题的。它只更新文件改变的部分(diffs),通过将文件划分成等大小的bytes,再通过校验和的方式压缩(有weak和strong两种方式)发送,接受一方再通过循环hash的方式找到不匹配的部分,从而完成整个更新。整个过程有一定复杂性,在此做一点记录,以后有时间在做进一步验证。下面附上部分参考资料:

yanghua的博客:http://blog.csdn.net/yanghua_kobe/article/details/8914970

java源码:https://github.com/yanghua/AlgorithmFactory/blob/master/rollingHash/RollingHash.java

The rsync algorithm:https://cs.anu.edu.au/techreports/1996/TR-CS-96-05.pdf

rsync可用ftp镜像:ftp://samba.anu.edu.au/pub/rsync

目录
相关文章
|
网络协议 程序员 网络架构
数据封装与解封装过程
数据封装与解封装过程
612 0
|
机器学习/深度学习 人工智能 搜索推荐
操作系统的演变与未来趋势
【8月更文挑战第2天】 在数字时代的浪潮中,操作系统作为计算机系统的核心,扮演着至关重要的角色。从早期的单任务系统到如今的多任务、多用户系统,操作系统经历了翻天覆地的变化。本文将深入探讨操作系统的演变过程,分析其背后的推动力,并预测未来的发展趋势。
182 2
ONLYOFFICE 桌面编辑器 8.1重磅来袭:全新功能提升您的办公效率
ONLYOFFICE 桌面编辑器 8.1重磅来袭:全新功能提升您的办公效率
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
851 0
|
机器学习/深度学习 人工智能 自然语言处理
Brain.js 的力量:构建多样化的人工智能应用程序
Brain.js 的力量:构建多样化的人工智能应用程序
438 0
|
并行计算 Java 容器
JAVA并发系列--ForkJoinPool初体验
JAVA并发系列--ForkJoinPool初体验
218 0
|
消息中间件 存储 机器学习/深度学习
带你读《企业级云原生白皮书项目实战》——4.4.3 开源日志方案比对
带你读《企业级云原生白皮书项目实战》——4.4.3 开源日志方案比对
557 0
|
存储 数据建模
「业务架构」BPMN简介第四部分-数据和工件
「业务架构」BPMN简介第四部分-数据和工件
|
NoSQL 关系型数据库 MySQL
Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
313 0

热门文章

最新文章