首先锁是用来做互斥的,解决并发执行时的数据不一致问题 如图会导致,不可重复读 如果这里用lock就可以解决,数据库里面有个LockManager来作为master,负责锁的记录和授权 数据库里面的基本的锁类型, 其实就是读锁,写锁 但是如果光是有读写锁,只能解决当个操作互斥和正确,无法解决transaction的正确 所以我们需要一个事务级别的锁,就是2PL,两阶段提交 最核心的想法,在growing阶段需要拿到所有需要的锁,否则就会block:shrinking阶段,不能去增加锁,只能释放锁…