数据库中的两段封锁协议的规则是先加锁,后解锁,所以可以保证冲突可串行化,来保证并发的一致性。但是两段封锁协议并不满足一级协议(即在事务commit时释放锁)。如果:事务1 修改数据A和B, 事务2 修改数据B. 事务1先获取A和B的锁,修改A的值,然后释放A的锁。在事务2获取A的锁的同时,如果事务1修改B失败,要进行roll back, 会发生什么?事务2 是否对A数据脏读?
事务1
事务2
2.1m questions
2.1m answers
62 comments
56.7k users