我正在寻找一个本机库或者可能是相对简单的算法来为最大 1GB 的文件创建和应用二进制补丁。这些是二进制数据库导出,不幸的是没有其他方法可以仅获取更改。补丁不需要非常小;更重要的是速度和空间效率(否bsdiff
)。这些文件通常只有不到 1% 的变化,而我已经对 10 倍大的补丁感到满意。
当然,关于这个问题已经有很多问题了,但我目前最大的限制是我需要它是具有许可许可证的开源软件(没有 GPL 风格)。出于这个原因,即使我对它的特性非常满意xdelta3
,也不是一个选择,也不是rdiff
。
我发现一种相当有效的方法是不导出,而是获取数据库文件本身并将其拆分为块。然后,只有不到 20% 的人在两个版本之间进行更改。不幸的是,备份必须与在线数据库一起进行,这将我与导出联系在一起。然后它不再那么好用了。