elasticsearch核心知识--18.图解Elasticsearch内部如何基于_version进行乐观锁并发控制

【该文章使用于从pimary shard和replica之间 备份的过程中 发生数据冲突的个人理解。如果发现理解有误,即使指正啊】

关于ES底层如何采用乐观锁进行并发控制的图解。涉及的场景是 如果shard中的数据被多次更改,由于es底层对shard和replica之间的数据同步都是采用的多线程异步的方式,可能对于在primary中后修改的线程 在shard和Replica之间进行同步时会提前到达Replica。那么这个时候进行版本比对后,会将filed=test3,version=2中的version进行比对,发现version=2大于等于副本中的version=1 所以就进行了修改。当后来来的 filed=test2   version=1<小于 Replica中的version=2 直接丢掉了那条数据,但是对于版本号还是会加1。即便是这中情况,数据最终也是对的。如果是先修改的先到了,那么同样也会进行修改,数据也是正确的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值