1、悲观锁并发控制方案
常见于关系型数据库中,比如MySQL。悲观锁并发控制方案,就是在各种情况下都给数据上锁。上锁之后就只有一个线程可以操作这条数据了,当然,不同的场景下上的锁都不同,有行级锁、表级锁、读锁、写锁。
2、乐观锁并发控制方案
es使用的是乐观锁,乐观锁是不加锁的每个线程都可以任意操作,此种控制方案在写数据的时候会判断当前数据的版本号是否与es中的版本号一致,如果版本号一致则写入数据,如果版本号不一致则说明数据已被修改,此时线程会重新查出最新的数据再此基础上修改数据。
优缺点:
1、悲观锁的优点是:方便,直接加锁对应用程序来说透明,不需要做额外的操作;缺点是并发能力低,同一时间只能有一条线程操作数据。
2、乐观锁的优点是:并发能力高,不给数据加锁,大量的线程并发操作;缺点是麻烦,每次更新的时候都要比对版本号,然后能可需要重新加载数据再次修改再写;这个过程可能要重复好几次。
Elasticsearch-剖析悲观锁与乐观锁两种并发控制方案(学习笔记)
最新推荐文章于 2021-12-29 11:29:48 发布