LiteFS基于 FUSE 的文件系统

联合创作 · 2023-09-28 09:44

LiteFS 是一个基于 FUSE 的文件系统,用于跨机器集群复制 SQLite 数据库。它作为一个 passthrough 文件系统,拦截对 SQLite 数据库的写入,以检测事务边界并记录 LTX 文件中每个事务级别的更改。

该项目正在积极维护,但目前处于 alpha 状态。文件系统和复制功能正常,但需要测试和强化才能使其投入生产。该存储库是开源的,旨在收集有关如何更好地进行 SQLite 复制的反馈和想法。

LiteFS 系统由 3 个主要部分组成:

  1. FUSE 文件系统:拦截文件系统调用以记录事务。
  2. Leader选举:目前由 Consul 使用会话实现
  3. HTTP 服务器:为副本节点提供 API 以接收更改。

LiteFS 旨在跨集群中的临时节点提供简单、实时、异步的复制。与更简单的灾难恢复工具(如Litestream)和更复杂但高度一致的工具(如 rqlite )相比,这种方法需要权衡取舍。

与任何异步复制系统一样,有一个时间窗口,事务仅在主节点上是持久的,并且没有被复制到副本节点。主节点上的灾难性崩溃将导致这些事务丢失。通常,这个窗口是亚秒级的,因为事务可以快速地从主节点转移到副本节点。

LiteFS 的未来版本计划同步复制和有时间限制的异步复制。

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报