版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33746789/article/details/83692597
(1)partial update内置乐观锁并发控制
partial update内部是自动执行之前所说的乐观锁的并发控制方案
两个线程
都拿到了document数据和_version
使用传过来的field更新document
线程B也在做partial update 修改了数据,先写回去了
这个时候线程A的操作 partial update 会 fail 掉
(2)retry_on_conflict策略
再次获取最新数据和版本
基于最新数据和版本去更新,如果成功,那么就OK了
如果失败,则再次重复之前两次操作
最多重复的次数可以通过 retry_on_conflict 参数去指定,比如 5 次
post /index/type/id/_update?retry_on_conflict=5&version=6