Repository navigation
v0.2.0 — 并发读性能优化 + 4w 性能门禁
本版本把多客户端并发线性读性能研究(PR #1, #2)落到实现:快照化读并行、读服务移出 actor 线程、peer 出站异步化,并把 4 连接并发线性读性能固化进 perf 门禁。
变更亮点
- 快照化状态机读并行:
KvStateMachine改为共享Arc<RwLock<Store>>,线性读/弱读直接读内存态机,去掉 apply 任务的 mpsc 串行(读并发度 1 → N) - 读服务移出 actor 线程:
sm.get+回复由独立 worker 完成,ReadIndex 门/版本告警保留在 actor;l2/turmoil 确定性不受影响 - peer 出站异步化:per-peer 有界队列 + 后台发送任务,慢 peer 不再内联阻塞 actor tick(满=丢弃+计数,raft 重传覆盖)
- INV14 分区注入门:deposed-leader 线性读安全回归测试(
tests/inv14_deposed_leader.rs) - 4w 性能门禁 T5:
check-perf-baseline.sh增 4w 线性读回归底线(RUNS=3 中位数、方差感知 2400 rps),1w 保持主信号 - ReadIndex 簿记:
Option<NonZeroU64>token、HashMap cohort 索引、swap-free 解析
性能结果(同集群 3 轮中位数,vs Phase-1)
| 口径 | 起点 | 现状 | 备注 |
|---|---|---|---|
| linear 1w | 4157 | 4267 | 无回归 ✓(主信号) |
| linear 4w | 2739 | 2917 | +6.5% |
| linear 8w | 1809 | 2073 | +14.6%(Phase-2 测) |
| put 1w | 563 | 593 | +5.3% |
Arachne vs etcd(本机 3 节点口径):1w +30%、4w +47%、8w +78%,put 持平。
设计决策记录(A cohort 屏障预证伪、T5 方差感知)见 dev-docs/plan-read-concurrency.md 与 dev-docs/propsol-v0.2.md v0.2.25。