数据访问中的并发

2017-01-10  本文已影响0人  猴猴猪027

数据库并发情况(database-level concurrency)

lost update 第一类丢失更新
第一类丢失更新

事务A的回滚导致事务B的更新失败。

时序图:

lost update
last commit wins 第二类丢失更新

事务A已经完成,事务B完成后覆盖了事务A的结果:

第二类丢失更新

时序图:

last commit wins
dirty read 脏读

事务A还没有提交的情况下事务B读取,读取完之后事务A回滚

脏读

时序图:

dirty read
unreapetable read 不可重复读

在事务A的两次读取中事务B写了相应的数据

不可重复读

时序图:

unrepeatable read
phantom read 虚读

虚读与不可重读类似,都是在两次读取中另外的事务做了操作,不过这里的是insert或者delete导致两次查询结果集数量都不同

虚读

时序图:

phantom read

参考文献:

  1. Java Persistence with Hibernate. Manning. 2nd Edition. Gavin King&Gary Gregory
上一篇 下一篇

猜你喜欢

热点阅读