MuduDB 服务端配置契约 v1#
范围#
本文档规定 mudud.cfg 服务端配置文件格式。该文件控制服务端监听端口、执行模式、运行时路径与 io_uring 行为。
版本历史#
版本 |
日期 |
摘要 |
|---|---|---|
1 |
2026-6-25 |
初始 TOML 配置。无显式 |
文件位置#
服务端按以下顺序查找第一个存在的配置文件:
--cfg /path/to/mudud.cfg(或-c /path/to/mudud.cfg)指定的路径(如果提供)。当前工作目录下的
./mudud.cfg。用户主目录下的
~/.mududb/mudud.cfg。
若上述文件都不存在,服务端返回 NotFound 错误。启动前请使用 mudud init-cfg 生成默认的 ./mudud.cfg。
配置字段#
字段 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
string |
|
应用包目录路径。 |
|
string |
|
数据库文件目录路径。 |
|
string |
|
监听 IP 地址。 |
|
u16 |
|
HTTP 管理 API 端口。 |
|
usize |
|
HTTP worker 线程数。 |
|
u16 |
|
PostgreSQL wire protocol 端口。 |
|
string |
|
Wasm 组件 ABI 目标。允许值: |
|
boolean |
|
是否启用 WASI 组件运行时。 |
|
string |
|
|
|
u16 |
|
TCP 定帧协议端口。 |
|
boolean |
|
每个 worker 一个 TCP 监听器。 |
|
usize |
|
Worker 线程数。 |
|
u32 |
|
io_uring 完成队列深度。 |
|
boolean |
|
启用 io_uring accept multishot。 |
|
boolean |
|
启用 io_uring recv multishot。 |
|
boolean |
|
启用 io_uring fixed buffers。 |
|
boolean |
|
启用 io_uring fixed files。 |
|
string |
|
|
|
u64 |
|
io_uring 日志 chunk 大小,单位字节。 |
|
usize |
|
数据库页大小,单位字节。该字段是持久化配置;已有数据库变更该值需要迁移或重新初始化。 |
兼容性说明#
当前文件中无显式
version字段。格式版本是隐式的,由解析器识别的字段集合决定。serde(default)保证缺失字段使用默认值,使使用当前字段名的旧配置文件可在新二进制上加载。
升级与回滚规则#
升级: 引入 v2 配置格式时,将要求显式
version = 2字段。若新增可选字段且使用serde(default),可不提升 v1 版本号。回滚: 新二进制可读取使用当前字段名的旧配置文件(得益于默认值)。v1-only 二进制遇到 v2 配置时因未知字段解析失败并返回解码错误,不会修改文件。
迁移: 增量化变更不需要迁移工具。破坏性变更需要提供离线配置迁移工具。
废弃策略#
引入破坏性变更时将添加显式
version字段。
参考#
解析器:
mudu_runtime/src/backend/mudud_cfg.rs示例配置:
doc/cfg/mudud.cfg