diff --git a/docs/edge-positioning-feasibility.md b/docs/edge-positioning-feasibility.md index 5f2e3c7..2b2ab5a 100644 --- a/docs/edge-positioning-feasibility.md +++ b/docs/edge-positioning-feasibility.md @@ -1,6 +1,36 @@ # BanDB Flux:边缘/具身智能方向 —— 定位、可行性与路线图 > 写于 2026-06-06。本文是一次"老大视角"的冷水复盘:先核代码、再判战场、再逐条体检你提的护城河,最后给一条不再"换皮"的路线。结论先放最前面,论据在后。 +> +> **2026-06-06 更新:方向已锁定为「具身智能边缘采集网关」。** 见下方 ★ 决策与执行计划。§0–§8 的分析作为这个决策的约束依据保留——它们规定了这个产品**能 claim 什么、绝不能 claim 什么**。 + +--- + +## ★ 决策与执行计划(2026-06-06 锁定) + +### 产品身份(定了,不再改) +**BanDB Flux —— 具身智能 / AIoT 的「可编程边缘采集缓冲网关」。** +坐在传感器采集入口,做一件成熟栈(ROS2/DDS、rosbag2/MCAP、Zenoh)**都不做**的事:**在数据落盘前做可编程预处理,并在边缘侧查询、只上传命中切片。** + +定位红线:**不替代机器人中间件,是它们之外的采集入口可编程层。**"轻量/单二进制"是入场券、不当卖点讲。 + +### 这个产品干三件事(每件都映射到现有真代码) +1. **本地优先高频落盘**(LSM 引擎,已有):传感器只管无脑写,BanDB 用 MemTable 吸收瞬时高频、WAL 保证不丢、异步 Compaction 落盘。网络波动不影响本地写入。 +2. **落盘前可编程钩子**(PreHandle,挂载点已有 → 需挂真实逻辑):丢弃超时/畸形帧、字段脱敏、时间戳单调性校验、字段裁剪。这是区别于"只录/只传/只存"对手的**唯一真差异化**。 +3. **边缘查询 + 切片上传**(需新建):`scan(start_ts, end_ts) + 谓词` 在本地定位"黄金切片",控制面只拉命中数据,把上传量从 GB 级压到 MB 级。 + +### Raft 的诚实归宿(留着,但用对地方) +- ✅ **固定多节点边缘网关/基站模式**下,用单组 Raft 复制「**采集清单 / 断点 checkpoint / 协调元数据**」——小、关键、需强一致。这是 Raft 的刚需,不是硬凑。 +- ❌ **不用** Raft 复制传感器 firehose;**不做**移动设备间 Multi-Raft 互备(CAP + 带宽 + 功耗三连否,见 §3 + §「LAN 那一刀」)。单设备模式 Raft 不启用。 + +### 明确「不做 / 不 claim」清单(写了就准备挂墙) +Multi-Raft 移动设备强一致互备 · 去中心化共识调度 · 解决传感器「画音同步」· 完整多维时空索引 · 把「断点续传 + hash 校验」当创新卖点(那是 COS multipart 的现成能力)。 + +### 执行里程碑(按顺序,做完一个 commit 一个) +- **M1 — Benchmark(先做,验地基)**:合成 IMU 高频流(如 200Hz~1kHz)+ 内存封顶配置 → 跑出 `写吞吐 / p99 延迟 / 内存峰值 / 丢帧数=0 / WAL 重启可恢复` 五个数。改造现有 `benchmark/`。**地基不稳,后面全是空中楼阁。** +- **M2 — 真钩子(差异化)**:挂一个真实 PreHandle 过滤器(丢超时/畸形帧 + 字段脱敏 + 时间戳校验),端到端 demo 证明"脏数据进不来"。 +- **M3 — 边缘查询(差异化收口)**:`scan + 谓词` API → 只打包命中切片上传,给出真实的"GB→MB"压缩比数字。 +- **M4 —(可选)Raft 元数据模式 + 收尾**:固定多节点下复制采集清单/断点;写一页技术说明 + 简历话术(用 §7-B)。 ---