性能优化的异常与正常逻辑的处理。

来源:互联网 发布:linux declare 编辑:程序博客网 时间:2024/04/28 18:25

有一个交易业务有多个业务逻辑,举一个简单的例子一个支付交易可能有现金,购物券,打折卡之类同时支付。正常的逻辑就是每一个支付种类都是一个事务,需要同时开启多个事务,如果以后再有其它组合方式,事务会更多。


这时交易如果交易异常,一种想法是把已经成功的事务保存下来,下次重新提交时提交未成功的事务。

这看下看起来很好,在处理异常时支付时可以节省前面已经成功的事务的开销。

但是,我们要知道,99.x%的情况下我们是不需要这样的逻辑的,这样的处理是每次提交无论是正常的还是重试的都要检查之前是否有已经成功提交过的事务。这为99.x%的正常业务逻辑增加了负担,所以优化只可能会偶然会出现异常逻辑而增加绝对大多数正常逻辑的负担,结果是适得其反的。

所以进过优化后我们在正常逻辑的时候直接就线性处理,不再进行断点保存。在出现异常后重新对所有事务提交,虽然在异常逻辑中开销更大,但整体性能有了很大的提高。(除非你的业务有50%的机会出现异常)
0 0
原创粉丝点击