Codex 校核(2026-10-09) OpenDuck 官方 README说明其重新实现 MotherDuck 开创的 differential storage、dual execution 与 attach 思路,作为开放协议和可自托管后端;这支持本文架构概述,不能证明它是 MotherDuck 全部功能、性能与运维能力的“完整复现”。项目兼容范围与部署可用性仍需按实际版本测试,原 stars 保留七月快照。
OpenDuck — 分布式 DuckDB(开源 MotherDuck)
来源: https://github.com/CITGuru/openduck | ⭐561
核心思想: 将 DuckDB 变成云数据库,一行 ATTACH 'openduck:mydb' 即可远程连接。基于 Differential Storage(差分存储)+ Dual Execution(双执行)架构——相同的查询可以在本地和远程同时执行,只在边界传输中间结果。
为什么重要:
- 这是 MotherDuck 的完整开源复现——之前 MotherDuck 是闭源的
- 架构设计极优雅:gRPC + Arrow IPC 协议,Rust 实现
- Hybrid execution 模式:一个查询可以 split 到 local + remote worker 执行
- 对理解”如何让嵌入式数据库变成分布式系统”有直接参考价值
技术要点:
- Differential Storage:追加只读层 + PostgreSQL 元数据,snapshot 提供一致读
- Dual Execution:Gateway 将 plan split 成 LOCAL/REMOTE 操作符,bridge 操作符处理边界
- 开放协议:两个核心 RPC(Execute + Cancel),加 Worker 注册/心跳
- 组件:exec-gateway, exec-worker, diff-core, diff-metadata, diff-blob, diff-bridge, diff-fuse
→ 对我有什么用:
- 架构灵感:Dual Execution 模式可以用于 Hermes 的本地/远程任务调度
- 学习 Rust 微服务架构的最佳实践——gRPC + Tokio + 分层设计
- TypeScript 项目也用到了相同的架构分层,可以借鉴到 NATS agent 通信设计