路线图

按垂直切片实现,
再分阶段扩展。

实现顺序为垂直推进。截至 Phase 7B,已完成 28 个阶段。隔离与 MVCC、索引连接以及 MCP 仍属规划内容。

0

Rust 基础

稳定类型、Schema、解析器、HIR 与关系 IR。

已完成
1

存储基础

4 KiB 槽页、有界缓冲池、堆插入 / 扫描与重开。

已完成
2A

事务 + WAL 核心

事务生命周期、版本化 WAL、LSN / pageLSN 与提交持久化。

已完成
2B

崩溃恢复

启动分析、重做历史、逆序 undo 与崩溃尾处理。

已完成
2B.1

单写者 + 运行时回滚

惰性写者所有权、可重试 commit / rollback 与 before-image undo。

已完成
2C

检查点 + WAL 生命周期

静止检查点、单调逻辑 LSN 与有界 WAL 代际回收。

已完成
3A

类型化表达式 + NULL

上下文 NULL 类型、三值逻辑与显式 IS NULL。

已完成
3B

类型化 DML

INSERT / UPDATE / DELETE、稳定 RowId 与受影响行结果。

已完成
3C

INNER JOIN

限定列、别名、自连接与 nested-loop 执行。

已完成
3C.5

Schema 指纹

规范表编码、SHA-256 指纹,以及打开时的身份校验。

已完成
integrity

页与 WAL 完整性

Page v4/v5 CRC32C、WAL v3 校验和与解码 fuzz。

已完成
3D

聚合 + 排序

ORDER BY、全局聚合与内存 GROUP BY。

已完成
4A

版本化 RowId

Page v5 slot generation、墓碑复用与过期定位符检测。

已完成
4B

堆复用 + 安全搬迁

确定性 first-fit,以及返回当前 RowId 的 UPDATE 搬迁。

已完成
4C1

持久 B+Tree

事务性创建 / 插入 / 点查,以及混合页与分裂恢复。

已完成
4C2

B+Tree 删除 / 再平衡

精确 (key, RowId) 删除、仅合并再平衡与根收缩。

已完成
4D1

索引目录与回填

持久 IndexCatalog,以及事务性 create_index 回填。

已完成
4D2

堆 / 索引 DML 维护

已注册索引与堆及 SQL DML 保持一致。

已完成
4E

点查 IndexScan

等值与 IS NULL 谓词可选择点查 IndexScan。

已完成
4F

ANALYZE 与代价

显式 ANALYZE 快照,以及确定性的点访问路径代价。

已完成
5A

Protocol v1

语言中立的二进制分帧、模式握手与流式结果。

已完成
5B

netbadbd 服务器

清单启动、TCP 会话与专用数据库工作线程。

已完成
5C

TLS 与授权

双向 TLS、证书主体与按表操作范围。

已完成
6A

Go 协议客户端

独立 Go 客户端与生成的类型化绑定。

已完成
6C

Rust 远程 SDK

基于 Protocol v1 的同步 netbadb-sdk::remote 客户端。

已完成
6D

检查 CLI

使用 netbadb 进行离线目录与语句检查。

已完成
6E1

SQL 诊断 LSP

基于共享编译器诊断的只读语言服务器。

已完成
7B

范围 IndexScan

带代价的有界 Int64/UInt64 范围扫描。

已完成
6E2

MCP 与其他适配器

MCP 以及其他工具适配器。

下一步
7+

后续优化

索引连接、单侧 / Text 范围代价,以及由基准驱动的后续工作。

后续

当前版本不包含以下能力

MVCC 与读隔离:读者可能观察到活动写者的缓冲修改

并发写者与跨进程文件锁

SQL 索引 DDL、唯一性约束、仅索引扫描与索引连接

完整 SQL:外连接、子查询、HAVING、DISTINCT、窗口函数

跨表写事务

MCP 适配器,以及实验性磁盘格式之间的迁移