主要观点:开始一个新系列,用 Rust 逐步构建基于 LSM 的存储引擎,该项目旨在介绍核心思想,而非追求生产级数据库的正确性和性能测试等,会逐步解决当前功能数据库存在的问题如读写性能慢、日志无界增长等。
关键信息:
- 引入
serde
、serde_json
、tokio
库。 - 创建
Db
结构体表示数据库,初始时为字符串到字符串的映射,且分配较随意。 - 通过日志
Log
记录put
操作,以实现get
功能,put
时将Put
结构体序列化为 JSON 并写入日志,get
时遍历日志查找对应key
的值。 - 实现
Db
的new
、put
、get
方法,main
函数测试数据库功能。
重要细节: Log
结构体的open
方法用于创建并打开日志文件,put
方法将Put
结构体序列化为 JSON 写入日志并同步到磁盘。Queryable
trait 用于定义get
方法,Log
实现该 trait 以提供get
功能。- 数据库操作存在读写性能问题及日志无界增长等问题,将在下一次解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。