https://github.com/ankur-anand/unisondb

一、概况

UnisonDB 是一个“日志原生(log-native)”、流式复制 + 可查询存储 的多模态数据库,采用 WAL(Write-Ahead Log)为一等公民,将每次写入视作可订阅的事件流,目标是支持本地优先(local-first)和边缘规模(edge-scale)的反应式架构。


二、核心卖点 / 设计目标

独特之处在于它融合了数据库 + 日志系统 + 复制层,因此它最适合“需要强本地性、流式同步、离线容忍”的系统。
  • 把数据库与消息总线合并:无需外部 CDC/Kafka 等管道,写入即为可流式复制的事件
  • B+Tree + WAL 混合存储:保证可预测的读取延迟(B+Tree)同时支持日志驱动的高并发复制与回放
  • 面向边缘/本地优先:支持 hub-and-spoke、multi-hub、multi-hop 等多种拓扑,便于大量边缘副本低延迟读取并在线/离线工作
  • 多模态存储:在一个事务中支持 KV、宽列(row)与大对象(LOB)

三、关键特性(摘要)

  • WALFS:mmap 优化的写前日志文件系统,便于高效读取和多副本复用
  • 引擎层:WAL + MemTable + B+Tree 的混合引擎(提供事务、可查询副本)
  • 复制:基于 WAL 的流式复制,支持 gRPC 传输并能向大量副本进行 sub-second fan-out
  • 本地通知:ZeroMQ sidecar 用于 post-commit 的本地实时通知(sub-millisecond 级)
  • 命名空间隔离(namespace isolation)和多租户友好

四、潜在场景

场景传统方案UnisonDB 提供的独特价值
零售 POSMySQL + Kafka + 手动同步写即流、自动复制、离线可写
IoTMQTT + 时序DB数据存储与复制合一
Local-first 工具SQLite + Sync Engine一体化日志+数据库
边缘 AIRedis + Kafka + 离线上传自动断点续传、流式回传
配置中心etcd / Consul无限副本 + 本地通知

标签:infra, ai

你的评论