我必须存储两个文件 A 和 B,它们都非常大(比如 100GB)。但是 B 可能在很大程度上与 A 相似,因此我可以存储 A 和 diff(A, B)。这个问题有两个有趣的方面:
- 这些文件太大,我知道的任何差异库都无法分析,因为它们在内存中
- 我实际上并不需要差异 - 差异通常具有插入、编辑和删除,因为它是供人类阅读的。我可以得到更少的信息:我只需要“新的字节范围”和“从任意偏移量的旧文件复制字节”。
我目前不知道如何在这些条件下计算从 A 到 B 的增量。有谁知道这个算法?
同样,问题很简单:编写一个算法,考虑到两者非常相似的事实,可以用尽可能少的字节存储文件 A 和 B。
附加信息:虽然大部件可能相同,但它们可能具有不同的偏移量并且出现故障。最后一个事实是为什么传统的差异可能不会节省太多。