知识卡片

对账是把关注点从过程转移到结果

普通读书笔记卡

内容

最终一致性、TCC等方案都在保证过程原子性。”对账”换一个视角:过程执行到一半失败,结果必不完整自洽,与其堵住每个失败缺口,不如定期检查结果数据是否符合预期数学规律(库存流水与订单状态对应关系),发现不符就针对性修补。适合”两份冗余数据本该相等”类场景,比TCC轻量。发散:每步都可能出错、逐一堵漏成本高时,在结果层建不变量定期核对更省力。

参考来源

- 位置:第10章《事务一致性》10.2.5节「对账」(源文件:_epub-src/text/part0048.html附近) - 结论依据:原文明确说明所有过程都会产生结果,一个过程部分执行成功部分失败则结果不完整,从结果可以反推出过程出了问题从而进行修补,这就是对账的思路,关键是找出数据背后的数学规律,直接支持卡片对对账把关注点从过程原子性转移到结果层面核对的论述。 - 原始内容:"所有的'过程'都必然产生'结果',过程是我们所说的'事务',结果就是业务数据。一个过程如果部分执行成功、部分执行失败,则意味着结果是不完整的。从结果也可以反推出过程出了问题,从而对数据进行修补,这就是'对账'的思路!……对账的关键是要找出'数据背后的数学规律'。"