Elasticsearch7.8.0版本进阶——持久化变更

news2024/9/30 21:30:37

目录

    • 一、持久化变更的概述
    • 二、事务日志(translog)
    • 三、持久化变更完整流程
    • 四、事务日志(translog)的作用
    • 五、事务日志(translog)的目的

一、持久化变更的概述

  • 没有用 fsync 把数据从文件系统缓存刷(flush)到硬盘,我们不能保证数据在断电甚至是程序正常退出之后依然存在。
  • 为了保证 Elasticsearch 的可靠性,需要确保数据变化被持久化到磁盘。
  • 动态更新索引(即:一次完整的提交会将段刷到磁盘,并写入一个包含所有段列表的提交点)
  • Elasticsearch 在启动或重新打开一个索引的过程中使用这个提交点(即:一个列出了所有已知段的文件)来判断哪些段隶属于当前分片。

二、事务日志(translog)

  • 即使通过每秒刷新(refresh)实现了近实时搜索,我们仍然需要经常进行完整提交来确保能从失败中恢复。
  • 在两次提交之间发生变化的文档怎么办?我们也不希望丢失掉这些数据。Elasticsearch 增加了一个 translog(即:事务日志),在每一次对 Elasticsearch 进行操作时均进行了日志记录。

三、持久化变更完整流程

  • 一个文档被索引之后,就会被添加到内存缓冲区,并且追加到了 translog。
    在这里插入图片描述

  • 使分片每秒被刷新(refresh)一次。

    (1)、这些在内存缓冲区的文档被写入到一个新的段中,且没有进行 fsync 操作。
    (2)、这个段被打开,使其可被搜索。
    (3)、内存缓冲区被清空。

    在这里插入图片描述

  • 当前进程继续工作,更多的文档被添加到内存缓冲区和追加到事务日志。
    在这里插入图片描述

  • 每隔一段时间(例如 translog 变得越来越大)索引被刷新(flush);一个新的 translog
    被创建,并且一个全量提交被执行。

    所有在内存缓冲区的文档都被写入一个新的段。
    缓冲区被清空。
    一个提交点被写入硬盘。
    文件系统缓存通过 fsync 被刷新(flush)。
    老的 translog 被删除。

    在这里插入图片描述

四、事务日志(translog)的作用

  • 事务日志(translog)提供所有还没有被刷到磁盘的操作的一个持久化纪录。当 Elasticsearch 启动的时候, 它会从磁盘中使用最后一个提交点去恢复已知的段,并且会重放 translog 中所有在最后一次提交后发生的变更操作。
  • 事务日志(translog)也被用来提供实时 CRUD 。当你试着通过 ID 查询、更新、删除一个文档,它会在尝试从相应的段中检索之前, 首先检查 translog 任何最近的变更。这意味着它总是能够实时地获取到文档的最新版本。

五、事务日志(translog)的目的

  • 保证操作不会丢失(即:在文件被 fsync 到磁盘前,被写入的文件在重启之后就会丢失)。
  • 默认 translog 是每 5 秒被 fsync 刷新到硬盘, 或者在每次写请求完成之后执行(e.g. index, delete, update, bulk)。这个过程在主分片和复制分片都会发生。这意味着在整个请求被 fsync 到主分片和复制分片的 translog 之前,你的客户端不会得到一个 状态码为200的OK 响应。

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

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

相关文章

随机森林算法(Random Forest)R语言实现

随机森林1. 使用Boston数据集进行随机森林模型构建2. 数据集划分3.构建自变量与因变量之间的公式4. 模型训练5. 寻找合适的ntree6. 查看变量重要性并绘图展示7. 偏依赖图:Partial Dependence Plot(PDP图)8. 训练集预测结果1. 使用Boston数据集进行随机森…

【华为OD机试模拟题】用 C++ 实现 - 分糖果(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【华为OD机试模拟题】用 C++ 实现 - 时间格式化(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

匈牙利算法与KM算法的区别

前记 在学习过程中,发现很多博客将匈牙利算法和KM算法混为一谈,当时只管用不管分析区别,所以现在来分析一下两个算法之间的区别。 匈牙利算法在二分图匹配的求解过程中共两个原则: 1.最大匹配数原则 2.先到先得原则 而KM算法求…

Linux centos升级nodejs,解决升级NodeJS遇到的问题,升级GLIBC、GLIBCXX、gcc(含资源包下载)

公司网站用的Nuxt开发的,本地开发环境NodeJS已经升级到16.14.2版本,服务器也要从12版本升级到16.14.2 如需本次安装的资源,请下滑到文章下面下载整套资源 NodeJS版本下载地址:https://nodejs.org/dist/v16.14.2 解压安装node后…

Docker 应用实践-仓库篇

目前 Docker 官方维护了一个公共仓库 Docker Hub,用于查找和与团队共享容器镜像,界上最大的容器镜像存储库,拥有一系列内容源,包括容器社区开发人员、开放源代码项目和独立软件供应商(ISV)在容器中构建和分…

【涨薪技术】0到1学会性能测试 —— 分类及应用领域

上一次推文我们分享了性能测试相关的专业术语,今天我们来看下性能测试的分类及应用领域!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末获取~ 性能测试划分 01、负载测试 负载测试是指服务器最…

【华为OD机试模拟题】用 C++ 实现 - 商人买卖(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

黑客网站大全!都在这了!速看被删就没了

我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…

java延时队列

二、延时队列使用场景 那么什么时候需要用延时队列呢?常见的延时任务场景 举栗子: 订单在30分钟之内未支付则自动取消。重试机制实现,把调用失败的接口放入一个固定延时的队列,到期后再重试。新创建的店铺,如果在十天内都没有上传过商品&…

XML调用 CAPL Test Function

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

数据结构:完全二叉树开胃菜小练习

目录 一.前言 二.完全二叉树的重要结构特点 三.完全二叉树开胃菜小练习 1.一个重要的数学结论 2.简单的小练习 一.前言 关于树及完全二叉树的基础概念(及树结点编号规则)参见:http://t.csdn.cn/imdrahttp://t.csdn.cn/imdra 完全二叉树是一种非常重要的数据结构: n个结点的…

22-基于分时电价条件下家庭能量管理策略研究MATLAB程序

参考文献:《基于分时电价和蓄电池实时控制策略的家庭能量系统优化》参考部分模型《计及舒适度的家庭能量管理系统优化控制策略》参考部分模型主要内容:主要做的是家庭能量管理模型,首先构建了电动汽车、空调、热水器以及烘干机等若干家庭用户…

【C++入门第二期】引用 和 内联函数 的使用方法及注意事项

前言引用的概念初识引用区分引用和取地址引用与对象的关系引用的特性引用的使用场景传值和引用性能比较引用和指针的区别内联函数内联函数的概念内联函数的特性前言 本文主要学习的是引用 及 内联含函数,其中的引用在实际使用中会异常舒适。 引用的概念 概念&…

基于SpringBoot的企业资产管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

蓝桥2.24训练

1&#xff0c;奇怪的函数 P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1这道题有两个点&#xff0c;一个是求数的位数 2&#xff0c;用整数二分求出的位数与n比较 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n; int ma…

【华为OD机试模拟题】用 C++ 实现 - 矩阵最值(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

flutter- JSON解析框架使用方法json_serializable

对于目前来说&#xff0c;大部分的API网络请求的通讯内容数据格式都是JSON。JSON返回的都是字符串&#xff0c;假如要取到data里面的id&#xff0c;去直接字符串截取肯定是不行的&#xff0c;要通过一定的方式把它解析成Map或者解析成对象&#xff0c;再去处理它。像一些简单的…

YOLOv5深度剖析

目录 YOLOv5算法概述 网络结构 backbone Conv模块&#xff1a; C3模块 SPPF neck 图形特征与语义特征 特征金字塔 head YOLOv5算法原理 以感受野理解网格 框回归以及分类 YOLOv5细节 消除网格敏感度 b. 正样本匹配 c. 损失计算 YOLOv5算法概述 YOLOv5与历代YO…

【异常】导出Excel异常This archive contains unclosed entries.

一、异常说明 二、定位问题代码 一看问题, 上下文都是与订单相关的内容。 查询代码的使用地方,发现出现在这个Mybatis的select语句中 查看备注,发现是订单物流,那就没跑了, 肯定是商城的物流模块出了问题 那是什么地方用到了这个物流模块而且涉及到导出功能呢? 经验告诉…