📢 转载信息
原文链接:https://simonwillison.net/2025/Oct/3/litestream/#atom-everything
原文作者:Simon Willison’s Weblog
🚀 备份神器Litestream迎重大更新:v0.5.0 重构架构,效率飞升!
我已经在生产环境中使用 Litestream 为 SQLite 数据库进行备份有几年了,一直稳定可靠。而最新的 Litestream v0.5.0 版本终于发布了!
经过漫长的等待,Ben Johnson 在转向基于 FUSE 的 LiteFS 之后,重新将精力集中在了更受欢迎的单一二进制文件 Litestream 方案上。Litestream 0.5 版本带来了全新的、经过深度优化的架构,并发布了详细的博客文章进行了解释。
核心痛点与创新:LTX 格式解决页面冗余问题
SQLite 默认以 4096 字节的数据块(页)存储数据。Litestream 的工作原理是将修改后的数据页复制到备份位置(通常是 S3 这样的对象存储)。
过去的问题在于,大多数 SQLite 表都使用自增主键。这意味着对小型表的顺序插入操作会导致数据写入到同一数据页中。这使得旧版本的 Litestream 在连续备份中会复制出许多略有不同的页面副本,造成备份冗余。
新版本引入的 LTX 格式(借鉴自 LiteFS)彻底解决了这个问题,核心在于引入了“压缩(compaction)”机制。
Ben 解释了 LTX 压缩的工作原理:
我们可以使用 LTX 压缩功能,将一堆 LTX 文件合并成一个没有重复数据页的单一文件。Litestream 现在利用此功能创建了一个压缩层次结构:
- 在 Level 1,我们压缩 30 秒时间窗口内的所有更改。
- 在 Level 2,我们压缩 5 分钟时间窗口内的所有 Level 1 文件。
- 在 Level 3,我们压缩 1 小时内的所有 Level 2 文件。
最终效果是:我们现在可以仅使用平均十几个文件,将 SQLite 数据库恢复到任意时间点。
下一阶段重磅功能预告:即时读取副本 (Read Replicas)
我个人最期待的是尚未完全落地的功能:使用 SQLite VFS 扩展实现的读取副本功能:
我们正在构建的下一个主要功能是用于读取副本的 Litestream VFS。这将允许您即时启动数据库副本,并立即从 S3 读取数据页,而数据库的其余部分则在后台进行填充。
该版本于 2025 年 10 月 3 日发布。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,小白也可以简单操作。
评论区