写入不堵检索。
HotBuffer 接住实时写入,Async-Builder 在后台并行合图。plan/apply 把规划放进读锁、提交压进短写锁——构图期间,检索仍然可以并发读图。
- 流式自测50% 阶段串行查询 104s → 3.9s;p99 1.72s → 21ms
- 写入路径HotBuffer + Async-Builder
- 回退开关HOUYI_HNSW_PLAN_APPLY=0
Community edition · v0.2.0-beta.5
HouyiDB 是单机、内存优先的向量数据库:Rust 编写,一个二进制同时提供 pgwire、HTTP 与 OpenAI 兼容 embedding 网关。
前两项为单机、单次运行的本机工程测量;机器、版本与参数见性能页。不是实验室基准,也不能跨场景拼成一个总分。
Why / 01
向量数据库的日常,是写入、检索与运维三股力量互相拉扯。HouyiDB 的选择是把它们压进单机边界,用尽可能少的部件解决。
HotBuffer 接住实时写入,Async-Builder 在后台并行合图。plan/apply 把规划放进读锁、提交压进短写锁——构图期间,检索仍然可以并发读图。
HTTP JSON 适合服务集成,pgwire 让 psql 与 PostgreSQL 客户端直接说话,OpenAI 兼容网关把 embedding 上游接进同一个 collection。
Rust 实现,单二进制落地;PAX 行列混存配合 bitset 剪枝,WAL 与图快照负责冷启动恢复。主备切换手动 promote,不引入自动选主与分片层。
Quickstart / 02
需要 Docker;或 Rust 1.87+ / macOS 预编译包。首次镜像构建约 5–15 分钟,构建完成后,下面三步可在 60 秒内跑完。
# 1 · 启动:HTTP :7000 / pgwire :5432
git clone https://github.com/houyidb-community/houyidb.git
cd houyidb
docker compose up -d
curl -sS --noproxy '*' http://127.0.0.1:7000/v1/health
# {"status":"ok"}
# 2 · 写入(collection 首次写入自动创建,维度自适应)
curl -sS --noproxy '*' -X POST \
http://127.0.0.1:7000/v1/collections/goods/upsert \
-H 'Content-Type: application/json' -d '{
"vectors": [
{"id":1,"values":[0.92,0.88,0.06,0.05,0.05,0.04,0.05,0.05],"label":"fruit","payload":{"name":"apple"}},
{"id":2,"values":[0.05,0.04,0.92,0.90,0.06,0.05,0.05,0.04],"label":"electronics","payload":{"name":"laptop"}},
{"id":3,"values":[0.04,0.05,0.05,0.06,0.90,0.92,0.05,0.04],"label":"book","payload":{"name":"rust-book"}}
]}'
# {"inserted":3}
# 3 · 检索
curl -sS --noproxy '*' -X POST \
http://127.0.0.1:7000/v1/collections/goods/search \
-H 'Content-Type: application/json' \
-d '{"vector":[0.90,0.85,0.05,0.05,0.05,0.05,0.05,0.05],"k":3}'
# {"ids":[...],"scores":[...]}
Capabilities / 03
对应 v0.2.0-beta.5 源码树。beta 就是 beta:不把路线图当现货,也不把单机能力说成集群能力。
| 能力域 | 能力 | 状态 |
|---|---|---|
| 检索与写入 | ||
| 检索 | HNSW 图索引 + SIMD 距离计算(NEON;AVX feature 隔离) | Beta |
| 检索 | 标量过滤与混合检索(label 倒排 + bitset 剪枝) | Beta |
| 检索 | 多索引后端:Clustered / PQ / HII-L0 | Beta |
| 写入 | HotBuffer + Async-Builder 双速写入 | Beta |
| 持久化 / 接口 / 生态 | ||
| 持久化 | WAL + 图快照 + 冷启动恢复 | Beta |
| 接口 | HTTP JSON API 与 OpenAPI | Beta |
| 接口 | pgwire(text / binary)与 SQL 混合检索 | Beta |
| 向量化 | OpenAI 兼容 /v1/embeddings 网关(上游自选) | Beta |
| 生态 | 六语言 SDK + LangChain / LlamaIndex 适配器 | Beta |
| 运维与部署 | ||
| 运维 | Prometheus 指标;RBAC、审计、静态加密、租户配额 | Beta |
| 部署 | 单二进制 / Docker Compose / Helm | Beta |
| 部署 | leader / follower 主备,手动 promote | Beta |
| 路线图 | ||
| 路线图 | HII L1(GPU CAGRA)与 L2(NVMe DiskANN) | Preview |
| 路线图 | MCP Server | Planned |
状态描述 v0.2.0-beta.5 源码树。beta 期间 API 与存储格式仍可能调整;社区版不做分片,也不提供自动选主。细节见服务端手册与部署指南。
SDK / 04
客户端覆盖常用后端与数据栈;字符串 id 经 BLAKE2b-8 映射为 u64,同一字符串在任意 SDK 得到同一结果,删除与重放可以跨语言进行。
stable_id:BLAKE2b-8 大端 & 2^63−1,与服务端网关一致;同一字符串 id 在任意语言得到同一 u64。
Status / 05
v0.2.0-beta.5 是 developer preview:适合功能验证、性能试用与集成预研。API、存储格式和性能旋钮仍可能变化;关键生产负载请先完成验证、容量评估与恢复演练。
--wal-path,纳入备份,并定期做冷启动恢复演练。GitHub / 06