Algorithm 什么';这个哈希/缓存/版本控制算法的名称是什么?
几周前,我在一次演示中看到了它,试图实现它,但失败了,并且忘记了它。但现在我想知道它是如何工作的=) 这是一种高效传输/存储数据的方法。它可以用任何语言工作。这就是(我认为)它所做的: 您有一个非常大的文件(例如网站的整个javascript集合)Algorithm 什么';这个哈希/缓存/版本控制算法的名称是什么?,algorithm,caching,hash,rabin,Algorithm,Caching,Hash,Rabin,几周前,我在一次演示中看到了它,试图实现它,但失败了,并且忘记了它。但现在我想知道它是如何工作的=) 这是一种高效传输/存储数据的方法。它可以用任何语言工作。这就是(我认为)它所做的: 您有一个非常大的文件(例如网站的整个javascript集合) 将其拆分为48字节的块 散列每个48字节的块(例如MD5) 拆分以0x00结尾的哈希上的块列表 大块(>=1散列)现在应该是不同的大小。有的很大,有的很小 在这些散列之间粘合块(同样:实际数据的大小非常不同) 散列那些块 现在,您有了一个表示大文件当
我找到了它所在的演示文稿。它在一个新产品“思洛存储器”中被提到(并被使用):Related:(所以它实际上是微软研究院的!整洁!) 从第一个链接: 启用思洛存储器的页面使用此本地 存储为LBFS样式的chunkstore 在第二个链接(视频)中,好的东西从
6:30
开始。现在我已经看过两遍了。。。我还是不明白=)
关键词是
Delta编码
和Rabin指纹
这听起来。。。有点比如远程差分压缩的工作原理
在低带宽文件系统中
(LBFS)[24],使用RDC协议
优化双方的沟通
一个发送者和一个接收者
双方都细分了各自的业务
将文件分成块并进行强计算
每种类型的校验和或签名
大块当客户端需要访问
或者从服务器复制一个文件
后者首先发送一个列表
将该文件的签名发送到
客户端,该客户端决定其
旧块可用于重建
新文件,并请求
缺少块。关键是
协议是文件
在客户机上独立划分
和服务器,通过确定块
数据要素的边界
这听起来很像。您可以使用解决“不是块大小倍数的更改”问题。这是rsync仅用于传输文件中已更改的部分的功能。如果在文件开头插入一个字节,所有哈希值都会更改,则很可能会记住一些错误的细节。可能是你应该对每一次48字节而不是块的运行进行散列。是的,我知道=)这就是我被卡住的地方!但是每运行48个字节的散列就是散列文件大小(字节数为47)的倍。(如果不是1000个中的100个,那就是10个!)那不可能。那就不值得了!?听起来确实有点像。我记得(但我不记得)一个更具异国情调的名字。。。我正在寻找它的演示文稿。+1表示
滚动哈希
和rsync
=)这可能就是它们的意思。不过对我来说好像有很多工作要做。。。