Skip to content

Arachne v0.2.0 — concurrent-read performance

Latest

Choose a tag to compare

@ipconfiger ipconfiger released this 07 Oct 23:04
· 20 commits to main since this release

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。