Lobsters 已迁移到 SQLite

Simon Willison13 天前

社区网站 Lobsters 已完成数据库迁移:从 MariaDB 转向 SQLite。

迁移背景

Lobsters 早在 2018 年 8 月就开始规划摆脱 MariaDB。最初的目标是 PostgreSQL,但在去年,项目维护者转而开始评估 SQLite。

这个周末,迁移工作完成。根据项目讨论中的反馈,当前运行情况已经足够稳定,SQLite 很可能会成为该站点接下来的长期架构。

迁移后的运行情况

迁移后的 Lobsters Rails 应用运行在单台 VPS 上。当前数据库大致包括:

  • 主内容 SQLite 数据库文件:约 3.8GB
  • 缓存数据库:约 1.1GB
  • 队列数据库:约 218MB
  • rack_attack 数据库:约 555MB,仍在增长,用于 Rack::Attack 中间件,以阻止和限流滥用请求

项目维护者反馈称,SQLite 的表现“非常好”:

CPU 使用率下降,内存使用率下降,网站至少在个人体验上更快;等 MariaDB 所在 VPS 下线后,VPS 成本可降至原来的一半。

代码变更规模

本次 SQLite 迁移由 Thomas Dziedzic 提交的迁移 PR 完成,变更规模包括:

  • 30 个提交
  • 涉及 188 个文件
  • 新增 735 行
  • 删除 593 行

该迁移工作还建立在此前多个相关 PR 的基础之上。

值得关注的地方

这个案例说明,对于一定规模的社区网站而言,单服务器加 SQLite 仍然可能是一种可行架构。Lobsters 的迁移结果并不能直接推出所有应用都适合 SQLite,但它为 Rails 应用、社区站点和中小规模 Web 服务的数据库选型提供了一个有参考价值的实践样本。

评论

请登录后发表观点

暂无数据