# P6 Weave 流程执行测量 验证日期:2026-09-20,最终运行 UTC 06:05–06:06。一次性 MySQL 8.4.10 中的隔离正确性与阶段耗时样本,P6/P7 仍进行中,不作为生产容量或高可用验收。 ## 本轮修正 原测量按每个实例的处理器总调用数核对两个分支,对重复分支、任务身份和本次发布版本的约束不足;输出中序号0还可能由缺失字段被解码为零值。本轮改为精确链路核对: - 发布回执必须匹配命名空间、定义身份、完整规范;实例绑定本次发布的不可变版本ID,输入和首次绝对截止不变。 - 步骤精确为 `pair:PARALLEL`、`left:TASK`、`right:TASK`,全部成功,步骤和激活身份唯一;左右分支必须关联不同任务。 - 任务的队列、命名空间、处理器、策略、输入/结果、固定截止与时间顺序一致,每任务恰有一个成功尝试;来源匹配该实例、版本、步骤键和激活。 - 每个已核验任务对应本地同一尝试的一次调用。一个分支执行两次不能抵充另一个分支;尚不能关联的调用单独报告。 - 精确JSON字段集合拒绝缺字段、null、重复键、大小写别名和尾随JSON,序号0也必须明确提供。 - 发布的流程及任务时限使用 `run-timeout`,移除原工具中未公开的30秒截断;报告增加每个启动请求的原键、实例ID、受理错误及核验标记。 此前24实例记录没有形成最终源码与所运行二进制的可靠对应,不能用于证明本轮实现。当前原始样本已由**重新构建的二进制**运行并替换旧证据;旧内容可从Git历史追溯。本轮环境清单同时保存源码、实际二进制及原始结果哈希,构建后没有修改这些源码。 ## 实际结果 工具通过独立 SDK 创建定义、发布固定 `v1`、启动流程,用2个真实 Worker回显固定输入,随后逐项读取流程、步骤、任务、尝试与来源。任务最多一次尝试、`RECONCILE_ONLY`,处理器无外部副作用。任何写请求都不由工具自动重试,队列额度只读。 | 样本 | 请求/受理 | 持久核验成功/未核验 | 本地调用 | 重复/未确认调用 | 完整/退出码 | | --- | ---: | ---: | ---: | ---: | --- | | 24实例,90秒截止 | 24/24 | 24/0 | 48 | 0/0 | true / 0 | | 100实例,90秒截止 | 100/100 | 100/0 | 200 | 0/0 | true / 0 | | 24实例,2秒截止 | 24/24 | 2/22 | 4 | 0/0 | false / 1 | 原始结果:[24实例](data/phase-6-workflow-load/sample-24.json)、[100实例](data/phase-6-workflow-load/sample-100.json)、[截止负例](data/phase-6-workflow-load/deadline-24.json)。两组正常样本错误集合为空;负例报告 `RUN_TIMEOUT=1`、`VERIFY_TIMEOUT=22`,22个实例保留原身份且未算成功。截止后只停止本地 Worker,不取消服务器实例;该快照不证明未核验工作已撤销或最终失败。 | 正常样本 | 受理往返P50/P95/P99 | 数据库实例创建至完成P50/P95/P99 | | --- | --- | --- | | 24实例 | 47.694 / 56.059 / 64.540ms | 7874.268 / 12805.768 / 12816.559ms | | 100实例 | 65.156 / 70.222 / 71.857ms | 23486.790 / 39126.668 / 42091.211ms | 100实例样本中最长流程持久耗时42101.309ms,超过旧工具的30秒隐藏上限,在此次90秒配置下仍正确完成。分布只统计完整核验成功实例,不混入客户端轮询等待;该观察不能推导目标生产吞吐。 ## 环境、回归及复现 单节点 Orbit、一次性 MySQL 8.4.10,1个负载进程中2个Worker。队列并发4、每秒授权10,工具不改额度。24/100正常组请求并发分别6/8,每Worker容量4;负例并发6、每Worker容量2。每次HTTP截止5秒,轮询100毫秒。指标关闭,容器共享本机Docker VM,无独占CPU/内存限制;Go进程与MySQL共享网络命名空间,仅回环通信,无宿主机发布端口。 实际工具链为 **Go 1.25.14 Linux arm64**,通过临时modfile使用;仓库声明的Go 1.27.1未改。SDK全模块 `go test -race ./...`、`go vet ./...`、`go build ./...` 通过,见[检查日志](data/phase-6-workflow-load/sdk-check.txt)。新增回归覆盖:发布版本替换、精确步骤/激活/任务身份、错误任务策略/队列/截止、缺失/额外尝试、错误来源和时间顺序、并发本地调用、同一分支重复不能抵充第二分支,以及序号0的严格字段解析。 真实样本后 `orbit-admin verify` 确认schema version28、28条迁移记录、6个必需索引及**外键0**,见[结构核验](data/phase-6-workflow-load/schema.json)。本轮没有修改数据库模型或迁移。 精确参数、工具链、资源和源码/二进制/结果哈希见[环境清单](data/phase-6-workflow-load/environment.json)。按[调用手册](../api/workflow-load.md)准备一次性数据库和带 `workflow-access`、`workflow-run-access`、`worker-access` 的隔离凭据,使用当前源码重新构建工具,再运行环境清单中的三组参数;退出码应为0、0、1。标准 `scripts/test-mysql.sh` 保留6实例回归入口,本轮未重跑整份集成脚本。 长期积压已有独立[积压与曲线样本](phase-6-backlog.md),本批不覆盖目标Go 1.27.1标准全量、跨标签SDK/服务端兼容矩阵、多节点吞吐、跨故障域恢复、生产连接池容量、RPO/RTO或发布审批;这些门槛继续按P6/P7完成。