悲观锁
传统悲观锁有两个性能问题:
- 磁盘io
需要将lock 的信息持久化到 lock CF中,这个时候产生磁盘io - 网络io
因为每个Region都是多副本,需要将信息通过网络 发送到Follower的lock CF中。
内存悲观锁
为了解决上面两个问题。 就有个内存悲观锁
- 锁的信息放内存,不用持久化到磁盘,减少磁盘io
- 不复制到follower 中
内存悲观锁的问题-锁丢失
其实内存悲观锁丢失了也没有太大问题,TiDB的机制是对其进行事务回滚
内存悲观锁的开启
- set config tikv pessimistic-txn.pipelined=‘true’
- set config tikv pessimistic-txn.in-memory=‘true’;