Elasticsearch数据写入过程

1. 写入请求

当一个写入请求(如 IndexUpdate 或 Delete 请求)通过REST API发送到Elasticsearch时,通常包含一个文档的内容,以及该文档的索引和ID。

2. 请求路由

  • 协调节点:首先,请求会到达一个协调节点(coordinating node)。该节点负责将请求路由到适当的数据节点(data node)。
  • 路由:基于文档的ID和索引的分片配置,Elasticsearch计算该文档应该存储在哪个主分片上,以确保数据均匀分布。根据路由算法,该文档在哈希表中的位置决定了它的存储位置。

默认路由:使用文档的ID进行哈希计算,与索引的主分片数量进行取模运算,以确定文档存储的具体分片。

自定义路由:使用 routing 参数,在写入文档时,可以使用routing参数指定自定义路由。这将覆盖默认的基于文档ID的路由逻辑。

3. 主分片和副本分片

  • 主分片:协调节点将写入请求发送到负责存储文档的主分片(primary shard)数据节点。
  • 副本分片:在写入操作完成后,Elasticsearch将数据复制到配置的副本分片(replica shard)以确保高可用性。副本用于提供冗余和负载均衡。

4. 内存写入

  • 事务日志(Translog):在写入操作到达主分片后,Elasticsearch会首先将文档写入到一个称为“事务日志”的文件中。这一过程在内存中进行,以便在意外失败时能够保持数据的完整性。事务日志记录了所有的写入操作,包括新增、更新和删除。

  • 内存缓冲:在确认写入事务日志后,Elasticsearch会将文档的内容写入到内存中,并缓冲起来。内存中的数据结构称为“索引缓冲区”(index buffer)。

5. 刷新(Refresh)

  • 刷新操作:每隔一段时间,Elasticsearch会进行一次“刷新”操作,它会将内存中的索引缓冲区的数据刷新到磁盘上,使这些数据变得可搜索。默认情况下,Elasticsearch每1秒进行一次刷新。

  • 刷新过程:在刷新过程中,Elasticsearch会为当前的文档创建新的段(segment),并把它们写入到磁盘。在此期间,新的写入操作仍可以在不影响正在进行的搜索的情况下进行。

6. 索引(Index)过程

  • 分词:对于文本类型的字段,Elasticsearch还会对文本进行分词处理,以便在创建索引时使用其关键词(tokens)进行搜索。

  • 倒排索引:Elasticsearch通过倒排索引将文档中的每个词映射到包含该词的文档。这一过程是在分片内部完成的,从而提高了搜索速度。

7. 合并(Merge)

  • 段合并:随着时间的推移,Elasticsearch会将多个小段合并成较大的段,以提升存储效率和搜索性能。这一过程是自动进行的,通常在写入和获取请求的低峰期执行。

8. 返回响应

所有操作完成后,Elasticsearch返回写入请求的响应,包括操作是否成功及相应的元数据(如文档ID和版本号等)。

9. 容错和重试

  • 失败处理:如果写入请求失败,Elasticsearch会记录错误,并可以配置重试机制。

  • 副本确认:对于高可用性要求的场景,Elasticsearch支持在确认写入完所有副本分片后再返回成功响应,可以通过设置 wait_for_active_shards来控制这一行为。

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

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

相关文章

1分钟教你用AI制作美女热舞视频,收益可观,操作简单(附工具及教程资料)

美女跳舞,听着是不是就觉得会很哇塞? 不管是男的女的、老的少的都喜欢看,而且一般美女跳舞的账号涨粉都很快,势头都贼猛。 今天就给大家分享一个很热门的小副业——AI美女跳舞。 更多实操和AI绘画工具,可以扫描下方&…

新能源动力组中预充电路及电阻选型分析

新能源动力组中预充电路及电阻选型分析 1.概述2.预充电路与预充电阻3.预充电阻参数选择4.实例分析 1.概述 最近几年,新能源行业在中国得到迅猛发展。由于其高效、节能、低噪声、无污染等特点,它已成为国内工业发展的新趋势包括汽车和飞机。虽然应用在新…

地瓜直播间 | 基于X5平台智能双目深度算法详解

你是否曾经好奇过,机器是如何像人类一样通过双眼来感知三维世界的?双目深度感知技术,是一种模拟人类双眼视觉的高级技术,通过两个摄像头捕捉同一场景的不同视角,深度学习算法能够计算出物体的深度信息,从而…

PX4软/硬件(SITL/HITL)在环仿真

文章目录 介绍依赖PX4 Firmware: 软件在环(SITL)仿真Gazebo 软件无人机STIL连接简要示意SITL SLAM仿真总结示例 HITL 仿真 pxh常用命令MAVLink 指令使用这些命令时的注意事项 参考链接 介绍 为https://blog.csdn.net/weixin_41469272/article/details/117919845的补…

东南亚电商新蓝海:深度解析东南亚服务器租用的战略价值

在全球化日益加深的今天,东南亚以其独特的市场潜力和对数字化技术的积极拥抱,成为了跨境电商及互联网企业竞相角逐的热土。随着东南亚地区经济的快速增长和人口红利的持续释放,电商市场的繁荣景象尤为引人注目。然而,要在这一竞争…

【Linux系统编程】TCP实现--socket

使用套接字socket实现服务器和客户端之间的TCP通信。 流程如下&#xff1a; 实现代码&#xff1a; /* server.c */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h> #include <s…

【C++笔记】类和对象的深入理解(一)

【C笔记】类和对象的深入理解(一) &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】类和对象的深入理解(一)前言一.类的定义1.1类定义格式1.2访问限定符1.3类域 二.实例化2.1 实例化概念2.2对象大小 三.this指针四.练…

[A-09]ARMv8/ARMv9-Memory-内存空间(Address Spaces and Translation Regimes)

ver 0.2 更多精彩内容&#xff0c;请关注公众号 前言 任何人和组织的发展都需要空间&#xff0c;比如我们这个伟大的国家&#xff0c;幅员辽阔、大好河山决定了我们的发展潜力。这么大国土空间&#xff0c;不是随意无须的在发展&#xff0c;都是处于主动的规划(有形的手)或者…

【计网】计算机网络基础

当自律变成一种本能的习惯&#xff0c; 你就会享受到它的快乐。 --- 村上春树 --- 初识计算机网络 1 初识协议1.1 协议分层1.2 OSI七层模型1.3 TCP / IP协议 2 初识局域网2.1 什么是局域网2.2 MAC地址2.3 局域网通信 3 简单认识IP地址 1 初识协议 1.1 协议分层 首先&#…

基于微信小程序的人才招聘系统设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的人才招聘系统设计与…

C++ 音频

一、采样频率 当前主流的采样频率为22.05KHz、44.1KHz、48KHz 22.05KHz&#xff1a;为FM广播声音品质 44.1KHz&#xff1a;为理论上最高的CD声音品质&#xff08;直播&#xff0c;录像&#xff0c;acc&#xff09; 48KHz&#xff1a;人耳可分辨的最高采样频率 &#xff08;…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月9日新模型预测第82弹

经过80多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;70多期一共只错了8次&#xff0c;这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c…

基于图神经网络的最大独立集问题的目标分支

文章目录 Abstract1 Introduction2 Related Work分支顶点选择图神经网络Abstract 分支归约方法结合了分支约束原则和归约规则,在处理以前无法管理的现实世界实例方面特别成功。分支策略决定下一个要在哪个顶点上进行分支。最近,最广泛使用的策略是选择最高度的顶点。 在这项…

OpenCV-轮廓特征

文章目录 一、简介1.意义2.类别 二、代码实现1.数据预处理2.计算周长3.绘制外接圆轮廓4.绘制外接矩阵 三、总结 一、简介 1.意义 在OpenCV中&#xff0c;轮廓检测后得到的轮廓不仅是一系列点的集合&#xff0c;还可以进一步分析以提取有用的特征。这些特征包括但不限于轮廓的…

读书记录:谷歌工作法 工作效率提升10倍的57个技巧

​ 前言 我在谷歌工作时留下的最深刻印象是“必须以全世界最快的速度取得成果”这一谷歌特有的强烈的使命感。 为什么日本的企业生产效率低下 过度推迟讨论 过分讨论 过度的交流 改变工作方式方法才是生存之道 在这样的时代&#xff0c;我们不应该害怕“自己的工作消失”&a…

使用rsyslog转发自定义日志到指定服务器

rsyslog简介 rsyslog 是一个高度可配置的、功能强大的系统日志守护进程&#xff0c;广泛用于 UNIX 和 Linux 系统中。它是 syslog 的一个扩展版本&#xff0c;提供了许多额外的功能和改进。能够收集、过滤、存储和转发日志数据。它的灵活性和扩展性使其成为现代 Linux 系统中日…

点餐小程序实战教程04变量定义和初始化

目录 1 什么是变量2 如何创建变量3 具体该选择什么类型4 变量的初始化5 await/async6 调试我们的程序7 运行我们的代码总结 日常碰到的最多的一句话是&#xff0c;我看到代码就发憷&#xff0c;我一点基础也没有。那低代码开发需要掌握什么样的基础&#xff0c;怎么才算是掌握了…

C与汇编之间的相互调用(29)

1 先来看一下 基本的调用规则。 注意&#xff1a; 程序通过 r1 -r4 来保存 传递的参数&#xff0c;如果 超过了 4个参数怎么办&#xff0c; 那就 放到栈里面。 注意&#xff1a; 堆栈是满递减&#xff0c; FD。 子程序的返回结果 会放到R0 里面。 2 然后是 c 语言调用 汇编语言…

MongoDB 5.0版本副本集集群

一、MongoDB 5.0版本副本集集群部署 什么是MongoDB的副本集 MongoDB的副本集&#xff08;Replica Set&#xff09;是一种用于提高数据库系统可用性、可靠性和数据冗余性的机制。副本集包含一组相互连接的MongoDB节点&#xff0c;其中包括一个主节点&#xff08;Primary&#…

使用FastJson2将对象转成JSON字符串时,小数转换出错

maven坐标 <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>2.0.40</version> </dependency> 问题现象&#xff1a; 问题原因&#xff1a; IOUtils.write…