美文网首页
es总结和思考2

es总结和思考2

作者: LoveAnny | 来源:发表于2019-06-13 18:57 被阅读0次

ES如何处理并发问题

其实这个问题问的是悲观锁和乐观锁,以及在ES中的应用

  1. 悲观锁

悲观锁就是只要操作就加锁(不太严谨),比如线程A读取数据,则线程A此时就对A进行加锁,知道线程A显式释放锁,如果此时线程B请求数据,则不能请求到任何数据,只能等待。

  1. 乐观锁

所谓乐观锁就是通过版本控制,如果线程A读取数据版本为1,此时线程B可以读取到数据也是1,如果此时AB同时修改数据,假设A先修改,则会先判断当前版本是否和发送的版本一直,如果一直则可以修改,不一致则修改失败,需要重新请求版本,之后再修改

ES 中采用的就是乐观锁,并且ES中写操作是异步并发执行,如果,AB同时修改数据,假设A先修改,B后修改,异步并发执行意思即是有可能B修改的指令先到达ES集群,此时就直接修改,当A到达后则忽略A的修改。

为什么ES 中Primary Shard 不可以修改

ES中index 数据是存储在多个Shard中,其中每个document 只能存储在一个primary shard ,在index 创建时一旦指定了primary shard 个数,之后就不可以修改。这是因为当index 中新增document 时,会根据document ID计算该document id 所在的Parimary Shard ,该算法是Hash + mod 算法。所以假设primary shard 个数可以修改,则一旦增加了个数,再次根据相同document id 查询时,有可能就找不到之前的primary ID ,所以ES 中Primary Shard 是不可以修改的。

相关文章

  • es总结和思考2

    ES如何处理并发问题 其实这个问题问的是悲观锁和乐观锁,以及在ES中的应用 悲观锁 悲观锁就是只要操作就加锁(不太...

  • es6语言特性的总结(3)

    es6语言特性的总结(1)在这里es6语言特性的总结(2)在这里 类 在ES5中,由于没有类的概念,所以如果要使用...

  • 2019-06-12 ES思考和总结

    如何理解ES是分布式、可伸缩、高可用 ES 是基于Lucene实现的分布式搜索引擎,其目的是扩展单机性能问题 ES...

  • js ------ import和export用法

    ES6模块的import和export用法总结

  • ES6总结(一) 初识

    es6总结 往期文章 ES5总结 1.es6简介 回顾javascrip组成:核心(ECMAScript)由ECM...

  • 响应式网站

    1,国外响应式网站收录 https://mediaqueri.es/ 2, 媒体查询:总结,max === 小于;...

  • async_promise

    写法的区别 ES5正常写法 Promise的写法 async await写法 总结 1、ES5写法和promise...

  • JS基础知识1---数据类型

    总结步骤 题目 知识点 解答 变量类型和计算 ECMAScript 有5种基本数据类型和1种复杂数据类型,和ES2...

  • ES6语法特性精华

    以下内容是我在学习和研究ES6时,对ES6的特性、重点和注意事项的提取、精练和总结,可以做为ES6特性的字典;在本...

  • 2021-06-19 ES6 Class关键字的使用

    ES6 Class关键字的使用 此文总结和参考自链接[http://caibaojian.com/es6/clas...

网友评论

      本文标题:es总结和思考2

      本文链接:https://www.haomeiwen.com/subject/rmrefctx.html