perf: coalesce batch progress refreshes
This commit is contained in:
@@ -3844,3 +3844,5 @@ git diff --check
|
||||
- 该轮最终双Stream归零,冻结/释放各2999、正式扣费2987、退款30、12条供应商最终拒绝只释放不扣费;SmsBillingRecord为charged2957/refunded30,余额恒等式精确成立,六通道与数据库最终无等待锁/idle in transaction。证据确认瓶颈是每个正价Submit结果在企业账户锁上串行,而不是单价0时可见的通道容量。
|
||||
- 后续最小修复将正常“释放冻结+正式扣费”改为单个幂等SQL:冻结已在入口扣减,流水对净余额为零,因此正常结算不再取得账户锁或更新账户;历史已释放未扣费状态仍用原带锁路径补扣,并保留并发`ON CONFLICT`后一次MVCC恢复读。专项134项和TypeScript已通过,完整门禁、修复提交、新恢复资产与复测待补记。
|
||||
- 无账户锁修复后100条/秒复测仍在注入结束出现命令Stream`128/1687`、结果Outbox`32/452`;相同观测点完成扣费从388提高至637、等待锁降为0,但单分片短信同时发布分片与聚合两个结果事件,仍造成约双倍API回调和分片审计写入。新增最小Gateway修复:单分片只发布已携带完整segments的聚合事件,多分片仍逐片先持久化,待新恢复资产和同口径复测。
|
||||
- 单分片回调收敛后第三轮100条/秒生成2999条,2999/2999受理,P50/P95/P99=`31/71/191ms`,三运营商`998/996/1005`、六通道`480至518`。注入期命令/结果Stream已排空但一度有2227条`submit_queued`,最终BullMQ wait/active/failed/delayed均0,消息2910 delivered、34 failed、55 submitted;冻结/释放各2999、charged 2987、refunded 21,SmsBillingRecord charged 2966/refunded 21,余额恒等式准确,数据库0等待锁/0 idle in transaction。该证据把剩余瓶颈定位到BullMQ发送Worker的逐消息数据库热路径,仍未达到全链100条/秒,因此没有升200档。
|
||||
- 热路径确认每条提交结果和回执都会并发执行整批`SmsMessageRecord GROUP BY status`并更新任务。最小修复对同进程同批次刷新做单飞合并,并在运行中查询后出现新状态时保留一次尾随刷新,不缓存业务结果。新增`TC-CMPP-500-P4-010`;SendChain专项122项与API正式TypeScript编译通过,部署和同口径100档复测待补记。
|
||||
|
||||
Reference in New Issue
Block a user