Rickrolling Turso DB (用 Rust 重写的 SQLite) - blag

这是一篇关于入侵Turso DB(原名 Limbo,用 Rust 重写的 SQLite)的初学者指南。

主要观点:介绍如何熟悉 Turso 的代码库、工具和测试,尽管作者未对 Turso 数据库做出贡献,但通过 6 小时的实验进行了探索。

关键信息和重要细节

  • 获取和编译:Turso 用 Rust 编写,获取代码并运行简单,如git clonecargo run,编译后可进入交互界面,作者还提到编译运行 SQLite 也简单。
  • 内部原理 - op_column:了解到 SQLite 有 VM 解释器,查询语句转为操作码在 VM 上执行,Column操作码负责将磁盘获取的值转换为内存数据结构,通过设置RUST_LOG=trace追踪 VM 执行,找到op_column的实现位置并进行修改使其返回 42。
  • PRAGMA:SQLite 可用 PRAGMA 语句配置数据库,Turso 已支持,作者添加新的 PRAGMA 并修改相关代码。
  • 测试:实验中存在一些 bug,还想玩 DST,需修复 bug 并添加测试,可选择性地为特定列启用该功能,也考虑在 SQLite、Postgres 或 MySQL 中添加。
  • 演示:展示了修改后的效果,给出相关代码链接,认为 Turso DB 适合新手参与,还提供了一些“好的第一个问题”的链接。
  • 琐事:Turso 实验性名称曾为 Ligma 用 Zig 编写,后重写为 Rust 并改名为 Limbo,博客和相关论文有更多 SQLite 内部细节。
阅读 15
0 条评论