zoukankan      html  css  js  c++  java
  • (41)ElasticSearch写一致性原理和quorum机制

      1、任何一个增删改操作都可以跟上一个参数consistency

    PUT /myindex/article/4?consistency=one
    {
      "post_date":"2018-05-18",
      "title":"Java",
      "content":"java is the best language",
      "author_id":666
    }

      该参数指定的值有3个:

      one:(primary shard)只要有一个primary shard是活跃的就可以执行

      all:(all shard)所有的primary shard和replica shard都是活跃的才能执行

      qurom:(default)默认值,大部分shard都是活跃的才能执行(例如共有6个shard,至少有3个shard是活跃的才能执行写操作 )

      2、qurom怎样计算出大部分

      公式:int((primary+number_of_replica)/2)+1,其中number_of_replica是每一个primary的副本,不是整个的。

      例如:3个primary shard,1个replica,总共6个shard

      int((3+1)/2)+1=3,至少3个shard是活跃的,才能进行写操作。

      3、可能出现shard不能分配齐全的情况

      比如:1个primary shard,1个replica

      int((1+1)/2)+1=2,但是如果只有一个节点,因为primary shard和replica shard不能在同一个节点上,所以仍然不能执行写操作。

      再比如:1个primary shard,3个replica,2个节点

      int((1+3)/2)+1=3,但是只有两个节点,所以仍然不能执行写操作。注意:一个primary的相同副本不能在同一个节点上。

      4、es默认等待机制

      当活跃的shard的个数没有达到要求时,es默认会等待一分钟,如果在等待的期间活跃的shard的个数没有增加,则显示timeout,该值可以指定。

    put /index/type/id?timeout=60s
  • 相关阅读:
    [转]android Intent机制详解
    [转]Android进程与线程基本知识
    HTML背景图片自适应
    边框边界填充理解
    [转]Android 代码自动提示功能
    [转]Windows7:Visual Studio 2008试用版的评估期已经结束解决方法
    eclipse安装、汉化、搭建安卓开发环境
    asp.net控件拖不动。控件错误
    opengl 入门浅学(一)
    opengl 无法定位程序输入点_glutInitWithExit于动态链接库glut32.dll上
  • 原文地址:https://www.cnblogs.com/javasl/p/12652096.html
Copyright © 2011-2022 走看看