docs: record tenant batching capacity results

This commit is contained in:
hectorzhao
2026-08-25 18:10:37 +08:00
parent b5005f21d5
commit b1e297245c
4 changed files with 27 additions and 1 deletions
+9
View File
@@ -3976,3 +3976,12 @@ git diff --check
- 结论应限定为“单企业正价完整首提约95 TPS”,不能外推为多企业平台总吞吐。下一步优先为入站工作流增加按企业分组的有界微批(目标批次32~64、最大等待20~50ms)并对不同企业并行、同企业账户冻结串行;同时把配额/频控/消息持久化合并为更少的集合事务。之后用同企业100/150和至少2个独立企业的总200 TPS正价场景分别验收。多Gateway仍不是当前优先项。
- 诊断另发现`GatewaySubmitOutbox.createdAt`由Prisma按UTC写入,而原生SQL以`CURRENT_TIMESTAMP``publishedAt/updatedAt`,测试机数据库会话时区为Asia/Shanghai时产生8小时显示偏差。该问题不影响本次Stream排空和首提TPS,但会污染Outbox发布时延审计,需单独将原生SQL时间统一为`NOW() AT TIME ZONE 'UTC'`并回归租约/重试时间语义。
- 收尾回读:9个核心服务均active,六连接在线;命令/结果Stream pending和lag均0,协议日志Stream长度0;7个应用继续active、接口开启、单价325,`^1380028/^1300028/^1890028`三条priority10规则继续active,每个应用的`100.91.249.119/32``127.0.0.1/32`白名单均保留。发布窗口API/Gateway/Worker/回调error级journal为0。
## 2026-08-25 单企业微批、连接竞态修复与双企业正价容量验证
- 提交`76e7c8c`:入站工作流领取前最多40ms聚合到目标32/上限64,按企业分组,不同企业并行、同企业分批串行并从后续领取排除;Submit Outbox及关联消息原生SQL统一为UTC。API完整45套525项(后续连接修复后526项)、TypeScript构建、Gateway全包测试/go vet、R0、发布契约和真实PostgreSQL SQL门禁通过。
- 100 TPS首轮998条出现2个Result 9,日志证明为Gateway复用API loopback连接时被Node默认keep-alive关闭;`394949f`设置API keep-alive/headers timeout为120/125秒并由部署脚本校验。复验不再出现loopback reset,但`920004`连接只返回9条后断开;日志定位同一connectionId的connected/submit状态回调竞态被误判超过1条连接。`b5005f2`改为同connectionId不重复计数、首次状态幂等upsert,保留不同连接超限403。
- 三次发布均只到`100.93.204.60`,预生产和多Gateway P2未操作;最终标记`b5005f21d5092b7e2759efdce0ebd02798e4552f+test.phase6.tenant-microbatch.utc.keepalive.connection-race`。最终恢复点`/opt/cmpp-platform-backups/phase6-connection-race-20260825T095448Z`,另保留实施前和keep-alive修复前两份可读恢复集;每份均含custom dump、运行源码、环境/systemd和SHA-256pg_restore/tar校验通过。
- 有效正价结果:单企业100档999/999、P50/P95/P99=`72/243/466ms`、23个批次平均43.43/最大64、Inbox 10.721秒排空、首次供应商Submit `95.85 TPS`;单企业150冲击1498/1498、`53/83/117ms`、33批平均45.39/最大64、12.453秒排空、首次Submit `122.87 TPS`;双企业合计200冲击1999/1999、`80/148/287ms`、两企业各22批、首次Submit `129.39 TPS`,两企业分别64.69/65.96。全部零拒绝、零节流、零连接错误。
- 双企业200档单价全部325:1999条账务记录,其中1988 charged/646100、11 refunded/35752145个含主备补发的SubmitId及Outbox全部唯一/publishedOutbox最大发布0.111秒。最终1936 delivered、49模拟器no-receipt为submitted、11最终失败已退款、3条首次接受后补发结果码8保留charged。1950条终态回执投递1950次、重复0、最大尝试1;客户端离线产生的973 pending由14账号零发送排空。
- 收尾状态:Inbox全83194条completedSubmit Outbox全27107条published,命令/结果/协议日志Stream pending和lag均0,下游pending=0,数据库锁等待/idle transaction=09服务active、API/Gateway健康、Redis PONG14个测试应用active且单价325,28条指定白名单保留,原phase5三条和新增phase6三条临时号段规则均active。未执行长期稳态,当前建议单企业限速90 TPS、单Gateway平台总限速100 TPS;入口150/200冲击不等于完整供应商TPS。