目 录CONTENT

文章目录

SQLite备份工具Litestream迎来0.5.0重大更新:引入LTX格式和实时读取副本

青云TOP
2025-10-04 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

📢 转载信息

原文链接:https://simonwillison.net/2025/Oct/3/litestream/#atom-everything

原文作者:Simon Willison’s Weblog


SQLite备份利器Litestream重磅升级至0.5.0版本

Litestream备份工具已经在我生产环境中默默运行了数年,用于备份SQLite数据库,至今未出现任何问题。经过长时间的等待,新版本终于发布了。开发者Ben Johnson在转向基于FUSE的LiteFS一段时间后,发现单二进制文件形式的Litestream更受欢迎,因此回归并推出了Litestream 0.5.0版本。该版本带来了全新的架构,并有非常详细的博客文章进行了介绍。

SQLite数据页与备份机制

SQLite默认以4096字节的“页”(page)为单位存储数据。Litestream的工作原理是将修改过的页面复制到备份位置,通常是S3这样的对象存储。

旧版备份痛点与LTX格式的革命

大多数SQLite表的自增主键(auto-incrementing primary key)决定了数据行的存储位置。这意味着对一个小表的连续插入操作,可能会导致数据写入到同一个页面,从而使得旧版Litestream在连续的备份中生成许多略有不同的页面副本。

新版本引入了从LiteFS借鉴来的LTX格式,通过“压缩”(compaction)机制解决了这一问题。Ben对此的描述如下:

我们可以使用LTX压缩功能,将一系列LTX文件合并成一个没有重复页面的单一文件。Litestream现在利用这一能力创建了一个分层的压缩结构:

  • 在Level 1,我们压缩30秒时间窗口内的所有变更。
  • 在Level 2,压缩5分钟时间窗口内的所有Level 1文件。
  • 在Level 3,压缩1小时内的所有Level 2文件。

最终结果是:我们平均只需要十几(dozen or so)个文件,就可以将SQLite数据库恢复到任意时间点。

展望:即时读取副本功能

作者本人最期待的尚未完全实现的功能是读取副本(read-replicas),该功能将通过SQLite的VFS扩展实现:

我们正在构建的下一个主要功能是用于读取副本的Litestream VFS。这将允许您即时启动一个数据库副本,并立即从S3中读取页面,而数据库的其余部分则在后台同步(hydrating)。

这篇文章于2025年10月3日发布。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,小白也可以简单操作。

0

评论区