chusql-storage 基准测试(预留)
这个目录预留给 Rust 存储层 的基准测试代码,目前 chusql-storage/ 还没有开工,
所以这里先占位。
计划放什么
chusql-storage 做的是磁盘那一层的事情,性能指标和查询层完全不同 ——
查询层关心"少算几行",存储层关心"少读几次盘"。所以基准要分开测:
| 待测模块 | 关心的指标 |
|---|---|
| 页管理 | 单页读写延迟、顺序读 vs 随机读吞吐 |
| B+ 树 | 插入/查找/范围扫描的耗时随数据量增长的趋势 |
| 缓冲池 | 命中率、缺页次数、替换策略(LRU 等)的对比 |
| WAL | 追加写吞吐、日志落盘延迟、恢复耗时 |
| 崩溃恢复 | 从日志重放的时间、恢复后数据一致性 |
用什么
Rust 侧的基准测试一般用 criterion:
benchmark/chusql-storage/
├── Cargo.toml
└── benches/
├── page.rs
├── btree.rs
├── buffer_pool.rs
└── wal.rs
跑法:cargo bench
另外还要和 Haskell 层对齐口径:查询层的基准是"整条查询的耗时", 存储层的基准是"单次 IO / 单次查找的耗时",两边不要混在一起比。