首页 > 代码库 > “丢失更新” 两种情况分析!
“丢失更新” 两种情况分析!
第一类丢失更新
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元。
“丢失更新” 两种情况分析!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。