Files
orbit/docs/reports/phase-6-workflow-load.md

2.5 KiB
Raw Blame History

P6 Weave 流程执行测量

验证日期:2026-09-20(UTC 运行时间记录为 2026-09-19 18:51)。这是一次性 MySQL 8.4 容器中的隔离正确性与阶段延迟样本,不是生产容量或高可用验收。

测量内容

orbit-workflow-load 通过独立 Go SDK 完成以下链路:

  1. 只读检查队列状态。
  2. 创建一个新的稳定定义并发布不可变 v1。
  3. 启动 24 个独立实例,每个实例使用自己的幂等键和业务键。
  4. 每个实例执行一个包含 left、right 两个静态分支的 PARALLEL 节点;两个分支各创建一个 TASK。
  5. 两个真实 WSS Worker(每个容量4)回显固定输入。
  6. 对每个成功实例读取步骤、任务、唯一尝试、流程任务来源和最终输出,核对实例固定版本及来源归属。

处理器只回显 run_id 和 sequence,没有外部副作用;启动调用和流程读取都没有 SDK 自动重试。流程定义把任务尝试上限固定为1,响应不明时保留原运行身份。

实际结果

项目 结果
计划/实际启动调用 24 / 24
唯一受理实例 24
持久化核验成功 24
未核验实例 0
处理器调用 48(每实例两个分支)
重复调用 0
Worker 启动任务数 48
错误分类 空
完成标记 true
启动耗时 P50 / P95 / P99 44.767208 / 49.584459 / 56.462333 ms
服务端流程完成耗时 P50 / P95 / P99 / Max 7898.658 / 13838.444 / 14788.909 / 14788.909 ms

原始 JSON:sample-24.json,工具链和源码摘要见环境清单。执行工具和字段语义见流程负载测量手册。

环境和边界

  • 负载工具:Go 1.25.14,Linux arm64;请求并发6,Worker 2×4,轮询100ms,单次 HTTP 5s,整次样本90s。
  • 服务端:一次性 Docker MySQL 8.4,通过当前迁移器初始化;结束时 orbit-admin verify 输出 schema_version=28、migration_count=28、foreign_key_count=0、required_index_count=6、complete=true。
  • 队列为只读测试资源,max_concurrency=4、rate_per_second=10;队列额度和数据库结构没有因测量修改。
  • 该样本证明流程发布、并行推进、Worker 执行、持久化回执和来源核对在此环境可复现;它不证明多节点吞吐、跨故障域恢复、生产连接池容量、RPO/RTO、备份介质或市场化部署 SLA。