码迷,mamicode.com
首页 > 编程语言 > 详细

es内部的多线程异步并发控制

时间:2018-02-28 01:03:44      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:异步   log   它的   行修改   let   自己的   控制   乱序   版本号   

version元数据
(1)第一次创建一个document的时候,它的_version版本号是1;以后,每次对这个document执行修改或者删除操作,都会对这个_version版本号自动加1
(2)在删除一个document的时候,它不是立即物理删除掉的,它的一些版本号等信息还保留着。先删除一个document,在重新创建这个document,其实会在delete version基础之上,再把version号加1
———————————————————————————————————————————————————————————————
es的后台,很多类似于replica的同步请求,都是多线程异步的。也就是说,多个修改请求之间是乱序的,可能后修改的先到,先修改的后到。

es内部的多线程异步并发控制是基于自己的_version版本号进行乐观锁并发控制的。线程在进行修改操作时,会比较一下_version版本号,如果想等就修改;如果不相等,就直接丢掉,该线程操作就不再执行这条修改操作。

es内部的多线程异步并发控制

标签:异步   log   它的   行修改   let   自己的   控制   乱序   版本号   

原文地址:https://www.cnblogs.com/qinjf/p/8481332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!