主要观点:开始一个新系列,用 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 写入日志并同步到磁盘。Queryabletrait 用于定义get方法,Log实现该 trait 以提供get功能。- 数据库操作存在读写性能问题及日志无界增长等问题,将在下一次解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。