• 第一类第二类丢失更新


    第一类丢失更新 

        A事务撤销时,把已经提交的B事务的更新数据覆盖了。这种错误可能造成很严重的问题,通过下面的账户取款转账就可以看出来:

    时间

    取款事务A

    转账事务B

    T1

    开始事务

     

    T2

     

    开始事务

    T3

    查询账户余额为1000元    

     

    T4

     

    查询账户余额为1000元

    T5

     

    汇入100元把余额改为1100元

    T6

     

    提交事务

    T7

    取出100元把余额改为900元

     

    T8

    撤销事务

     

    T9

    余额恢复为1000 元(丢失更新)

     

       

    A事务在撤销时,“不小心”将B事务已经转入账户的金额给抹去了。 

        第二类丢失更新 

    A事务覆盖B事务已经提交的数据,造成B事务所做操作丢失:   

    时间

    转账事务A

    取款事务B

    T1

     

    开始事务

    T2

    开始事务

                             

    T3

                   

    查询账户余额为1000元    

    T4

    查询账户余额为1000元

                             

    T5

     

    取出100元把余额改为900元

    T6

     

    提交事务           

    T7

    汇入100元

     

    T8

    提交事务

     

    T9

    把余额改为1100 元(丢失更新)

     

     

        上面的例子里由于支票转账事务覆盖了取款事务对存款余额所做的更新,导致银行最后损失了100元,相反如果转账事务先提交,那么用户账户将损失100元。

     

  • 相关阅读:
    分布式服务框架的雪崩问题
    分布式系统中的幂等性
    Exception引起的性能问题
    TFS2017新特性(一)
    云平台架构变迁
    MQ基本概念
    SVN版本管理
    1年内4次架构调整,谈Nice的服务端架构变迁之路
    鏖战双十一-阿里直播平台面临的技术挑战
    统一日志平台初探
  • 原文地址:https://www.cnblogs.com/zhilu-doc/p/6654730.html
Copyright © 2020-2023  润新知