内核#

MuduDB 内核是系统的正确性基础。它负责存储、事务处理、查询执行、调度,以及过程访问数据库状态时使用的系统调用边界。

内核与运行时分层#

MuduDB 采用双层架构:

  • 内核(Kernel) —— 提供数据库引擎:页、关系表、索引、WAL、事务、查询计划/执行与调度。

  • 运行时(Runtime) —— 托管用户定义的过程(WebAssembly 组件),并将其系统调用转发到内核。

运行时是被动的:它不引入自己的调度器或执行策略。过程执行由内核触发和控制,以确保调度、正确性与数据访问都处在同一权威之下。

职责#

领域

内核职责

存储

管理关系表与时序文件、页分配、slot 数组及磁盘格式。

事务

提供会话上下文、冲突检测、提交/回滚与 WAL 持久化。

查询执行

解析并执行 SQL 查询、执行分区路由、返回结果集。

调度

将工作分配给每核工作线程,并协调基于续体的异步执行。

系统调用

暴露窄系统调用接口(mudu_openmudu_querymudu_get 等)。

兼容性

跟踪格式版本,并通过升级/回滚处理器路由持久化数据。

工作线程模型#

内核围绕每核工作线程组织执行。每个工作线程拥有部分分区、本地连接状态,以及(在 IOUring/Tokio 模式下)本地异步运行时。这样可将热路径数据保留在同一核心,减少跨核争用。

更多细节请参见每核工作线程模型分区

边界与兼容性#

内核的磁盘格式与网络线格式由参考资料中的版本化契约管理。面向用户的文档应描述子系统边界,而不应将实现细节转化为兼容性承诺。