feat: add bounded workflow execution measurement
This commit is contained in:
41
docs/reports/phase-6-workflow-load.md
Normal file
41
docs/reports/phase-6-workflow-load.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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](data/phase-6-workflow-load/sample-24.json),工具链和源码摘要见[环境清单](data/phase-6-workflow-load/environment.json)。执行工具和字段语义见[流程负载测量手册](../api/workflow-load.md)。
|
||||
|
||||
## 环境和边界
|
||||
|
||||
- 负载工具: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。
|
||||
Reference in New Issue
Block a user