Interview preparation--Elasticsearch并发控制

Elasticsearch 并发控制
  • Elasticsearch是分布式的。创建,更新,删除文档时,必须将文档的新版本复制到集群中的其他节点。ES也是异步并行的,所有这些复制请求是并行发送的,并且可能不安顺序执行到每一个节点。ES需要一种并发策略来保证数据的安全性,而这种策略就是乐观锁并发控制策略。
  • 为了保证旧文档不会被新文档覆盖,对文档执行的每个操作都由协调该更改的主分片分配一个序列号(_seq_no)。每个操作都会操作序列号递增,因此可以保证较新的操作具有更高的序列号。然后,ES 可以使用操作序列号来确保更新的文档版本永远不会被分配了较小序列号的版本覆盖。
版本号: _version
  • 基本原理:

  • 每个索引文档都有一个版本号。默认情况下,使用从1 开始的内部版本控制,每次更新都会增加。 可选操作是,版本号可以设置为外部(比如在数据库中维护)。 可以通过设置version_type = external。 提供的值必须大于或等于0 而且小于9.2e + 18 左右的数字长整型值。

  • 如果设置了version_type = external,在用外部版本类型时候,系统会检查传递给索引请求的版本号是否大于当前存储文档的版本。如果为真,文档将被索引并使用新的版本号。如果提供的值小于或等于存储文档的版本号,则会发生版本冲突,索引操作将失败。

  • _version 的有效范围是当前文档

使用if_seq_no 和 if_primary_term 进行版本控制
  • if_seq_no 和 if_primary_term 是用来并发控制,和 _version不同,_version属于当前文档,而 _seq_no属于整个index。
  • if_seq_no : 索引级别的版本号,索引中所有文档共享一个 _seq_no
  • _primary_term:是一个整数,当Primary Shard发生重新分配的时候,比如节点冲突,Primary选举或者重新分配等,_primary_term会递增1,主要用来恢复数据时候处理多个文档的_seq_no一样时候避免冲突,避免Primary Shard 上的数据被覆盖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新品发布 | TC1018Pro和TC1034Pro正式发布,功能升级,多设备时间同步

新品发布/New products release 同星智能最新推出TC1018Pro和TC1034Pro两款产品,新版本在保留原来基本功能的基础上做了升级,主要新增IO功能、错误帧ID检测、多设备间时间同步等功能。 接下来,让我们看看这两款产品带来了哪些具体功能升级&a…

玄奘取经线路矢量图分享

我们在《透过丝绸之路,看古人都走过哪些地方》一文中,为你分享过丝绸之路的矢量图数据。 现在,我们再为你分享一下玄奘取经线路的矢量图,你可以在文末查看这些数据的领取方式。 玄奘取经线路 《西游记》的故事相信大家都不陌生…

ABC234G Divide a Sequence 题解

题目来源 ABC234G 洛谷 Description 给定长度为 n n n 的序列 { a n } \{a_n\} {an​}。定义一种将 { a n } \{a_n\} {an​} 划分为若干段的方案的价值为每段的最大值减去最小值的差的乘积。求所有划分方案的价值的总和并对 998244353 998244353 998244353 取模。 1 ≤…

项目实训-vue(十一)

项目实训-vue&#xff08;十一&#xff09; 文章目录 项目实训-vue&#xff08;十一&#xff09;1.概述2.页顶导航栏3.导航信息4.总结 1.概述 本篇博客将记录我在图片上传页面中的工作。 2.页顶导航栏 <divstyle"display: flex;justify-content: space-between;alig…

如何挑选洗地机?盘点口碑最好的四大洗地机

在购买洗地机这种智能家电时&#xff0c;大家都应该格外谨慎。毕竟&#xff0c;洗地机价格不菲&#xff0c;精打细算&#xff0c;确保物尽其用才是最重要的。谁都不想花了高价买回来却让它闲置在墙角落灰尘。买之前我们还是需要对自己的需求做一个清晰的判断&#xff0c;实用性…

【GameFramework扩展应用】6-2、替换GameFramework.dll源码

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q764424567/article/details/1…

9 个实用 Shell 脚本

Dos 攻击防范&#xff08;自动屏蔽攻击 IP&#xff09; #!/bin/bash DATE$(date %d/%b/%Y:%H:%M) LOG_FILE/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP$(tail -n5000 $LOG_FILE |grep $DATE |awk {a[$1]}END{for(i in a)if(a[i]>10)print i}) for IP in $ABNORMA…

【unity笔记】六、UI实现下拉列表切换视角

具体步骤如下 1. 创建UI下拉列表&#xff1a; 在Unity场景中右键点击并选择UI -> 下拉列表 来创建一个新的下拉列表。 2. 添加摄像机选项&#xff1a; 在Dropdown的Options属性中添加新的选项&#xff0c;通过点击按钮来添加选项&#xff0c;并为每个选项设置一个显示名…

广告联盟撸包小游戏app开发 现有源码案例

广告联盟小游戏APP的开发涉及多个关键步骤和要素&#xff0c;以下是一个大致的开发流程&#xff1a; 市场调研与定位&#xff1a; 深入了解目标用户群体的需求、喜好以及游戏习惯&#xff0c;这有助于确定游戏的核心功能和特色123456。 分析市场上的类似产品和广告联盟平台&a…

sourceTree 和Tortoise git软件的对比,以及使用sourceTree管理公司托管的 gitlab 项目或github项目

文章目录 Tortoisegit 和sourcetree的比较如何添加 gitlab 的社区版账号总结参考资料 Tortoisegit 和sourcetree的比较 我在 window都是用 Git 小乌龟&#xff08;Tortoise git&#xff09;来可视化管理 Git 项目。这时是不区分 Git 平台的&#xff0c;也就是不管你用的是 Git…

用Rust开发一个类似SQL Server的数据库系统的步骤和关键技术

在开发一个类似SQL Server的数据库系统时&#xff0c;选择Rust作为编程语言有许多好处&#xff0c;包括安全性、性能和并发性。本文将探讨用Rust开发这样一个系统所需的关键步骤和技术。 1. 项目规划和设计 在开始编码之前&#xff0c;需要进行详细的规划和设计&#xff1a; …

山东省专用R1快开门式压力容器操作题库(附答案)

1、【判断题】压力容器运行中的压力和温度升、降&#xff0c;都应做到缓慢进行。(  )(√) 2、【判断题】(  )压力容器升温过程中需进行热紧的系统&#xff0c;应在升温同时对容器、管道、阀门、附件等进行均匀热紧。(√) 3、【判断题】压力容器遇有紧急情况威协安全时&am…

生产看板管理系统内容有哪些?

相信很多做生产管理的朋友都会遇到如下问题&#xff0c;我就在想&#xff0c;是否能一个创建“透明的”的工作场所&#xff1f;让员工和管理者能够实时查询生产进度&#xff0c;及时发现生产中的问题。 生产进度难追踪 生产过程不透明 生产决策缺乏数据支持 ——能&#xf…

ROS CDK魔法书:点亮博客上云新技能(TypeScript篇)

引言 在数字世界的浩瀚海洋中&#xff0c;信息与数据如同戏剧中的主角&#xff0c;舞动着无形的旋律&#xff0c;构建起信息时代的交响乐。而在这其中&#xff0c;作为一位技术领域的探索者&#xff0c;你的使命便是挥舞着编码的魔杖&#xff0c;创造和守护着这些宝贵的数字灵…

【杂记-浅谈OSPF协议之LSDB链路状态数据库】

OSPF协议之LSDB链路状态数据库 一、链路状态数据库LSDB概述二、LSDB的构成三、LSDB的建立和维护四、OSPF区域划分对LSDB的影响 一、链路状态数据库LSDB概述 定义 LSDB&#xff0c;Link State Database&#xff0c;即链路状态数据库&#xff0c;是OSPF协议中的一个核心组件&…

PointCloudLib 3D对象的可视化 C++版本

0.实现效果 显示箭头 vtkOutputWindow::SetGlobalWarningDisplay(0);pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));viewer->setBackgroundColor(1, 1, 1);//添加箭头显示pcl::PointXYZ pA(0, 0, 0);pcl:…

openfeign的原理 ????

1、我们使用openfeign调用远程接口就像调用本地方法一样简单。 2、支持spring mvc 注解 3、整合了更多的扩展 &#xff08;请求重试策略、超时控制、请求拦截器&#xff09; 4、open Feign是基于aop的原理&#xff0c;他会通过所加FeignClient的接口&#xff0c;自动拼接接口…

准备篇(三)网页相关知识

Java script小脚本 - 爬取 bilibili 表情Java script 小脚本 - 爬取 bilibili 表情 随便点开一个视频,注意这个页面 URL 对应的 HTML 代码中没有表情的代码, 需要先点一下评论区,然后再在这个页面 URL 对应的元素中找到表情所在的源码。(但是我不知道这个带表情 <pic…

使用ShellHub搭建集中式SSH

SSH 是 Secure Socket Shell 或安全 shell 的缩写。这是一种加密协议&#xff0c;用于通过不安全的网络管理和创建两台计算机之间的安全通信。 SSH 还可用于指代实现 SSH 协议的实用程序套件。有多种身份验证机制&#xff0c;最常见的一种是密码身份验证&#xff0c;但也有基于…

机器学习之多模态学习FLAVA(Foundational Language and Vision Alignment)

FLAVA(Foundational Language and Vision Alignment)是Meta AI提出的一种多模态学习模型,旨在处理自然语言和视觉任务。FLAVA通过联合学习文本和图像的特征表示,实现了在多模态任务上的优异性能。 FLAVA的基本概念 多模态学习: 多模态学习涉及同时处理多种类型的数据,例…