Elasticsearch7.8.0版本进阶——持久化变更
目录
- 一、持久化变更的概述
- 二、事务日志(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 响应。
相关文章:
Elasticsearch7.8.0版本进阶——持久化变更
目录一、持久化变更的概述二、事务日志(translog)三、持久化变更完整流程四、事务日志(translog)的作用五、事务日志(translog)的目的一、持久化变更的概述 没有用 fsync 把数据从文件系统缓存刷ÿ…...
CF Edu 127 A-E vp补题
CF Edu 127 A-D vp补题 继续每日一vp,今天晚上有课,时间不太多,回去就直接vp。前三题比较简单,过了之后排名rk2000,然后就去洗澡了。d题没怎么认真思考,其实也可做。最后rk4000。发挥还行,b题罚…...
剑指 Offer 05. 替换空格
摘要 剑指 Offer 05. 替换空格 一、字符替换 由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。建立字符数组地长度为 s 的长度的3倍,这样可保证字符数组可以容纳所有替换后的字符。 获得 s 的长度 length创建字符数组 array&#x…...
通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作
1.通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…...
Python实现某du文库vip内容下载,保存成PDF
前言 是谁,是谁在网页上搜索往年考试卷题答案的时候只能阅读前两页的选择题,是谁在搜几千字的文档资料只能看25%,是谁在百度文库找七找八的时候所有的东西都要付费才能继续看… 我先说 是我自己 我又不经常用,只有偶尔需要看看…...
vue3.0 模板语法
文章目录前言:1. 内容渲染指令1.1 v-text1.2 {{ }}插值表达式1.3 v-html2. 双向绑定指令2.1 v-model2.2 v-model的修饰符3. 属性绑定指令3.1 动态绑定多个属性值3.2 绑定class和style属性4.条件渲染指令4.1 v-if、v-else-if、v-else4.2 v-show4.3 v-if与v-show的区别…...
【GlobalMapper精品教程】054:标签(标注)功能案例详解
同ArcGIS标注一样,globalmapper提供了动态标注的功能,称为标签,本文详解标签的使用方法。 文章目录 一、标签配置二、创建标签图层三、标签图层选项1. 标签字段2. 标签样式3. 标签格式4. 标签语言5. 标签优先级一、标签配置 在配置页面的【矢量显示】→标签选项卡下,有标签…...
超详细树状数组讲解(+例题:动态求连续区间和)
树状数组的作用:快速的对数列的一段范围求和快速的修改数列的某一个数为什么要使用树状数组:大家从作用中看到快速求和的时候可能会想到为什么不使用前缀和只需要预处理一下就可以在O(1)的时间复杂度下实行对于数列的一段范围的和但是我们可以得到当我们…...
【学习笔记】AGC055
A - ABC Identity 如果只有AAA,BBB两种字符的话,我们发现要寻找p∈[1,n]p\in [1,n]p∈[1,n],使得[1:p][1:p][1:p]中AAA的数目与[p1:n][p1:n][p1:n]中BBB的数目相同。 如果有A,B,CA,B,CA,B,C三种字符,我们可以先将A,BA,BA,B分离出来…...
墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源
墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错,将其改名为shell.asp.txt上传,发现上传成功 6.有个问题就是服务器将我们所…...
5.2 Python if语句
5.2.3 检查是否不相等要判断两个值是否不等,可结合使用惊叹号和等号(!),其中的惊叹号表示不,在很多编程语言中都如此。下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变量中,再打印一条消息&am…...
ubuntu gerrit 配置
1 - 简介 参考地址: https://www.cnblogs.com/anliven/p/12019974.html https://www.cnblogs.com/anliven/p/11980432.html 虽然Gerrit 本身提供 Code Review和 Git 仓库的两大功能,但实际上很多项目用的是其他的Git仓库,例如GitLab和GitHub。 一般情况下,Gerrit位于最终…...
运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐
现在市面上运动耳机的品牌越来越多,还不知道选择哪一些运动耳机品牌,可以看看下面的一些耳机分享,运动耳机需要注意耳机的参数配置以及佩戴舒适度,根据自己最根本的使用需求来选择运动耳机。 1、南卡Runner Pro4骨传导蓝牙运动耳…...
(7)C#传智:方法及参数、重载(第7天)
一、方法作用域 被调用者需要调用者的值,方法有二: 1.传参数. private static void Main(string[] args){int m 3;Console.WriteLine(m);Console.ReadKey();}public static int GetMax(int m){return m 3;} 2.使用静态字段模拟全局. 多个方法都需要时&#x…...
Python 函数式编程
函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 1.高阶函数 一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数 abs(-10) 是函数调用 abs是函数本身 abs函数名其实是一个变量名 变量可以…...
pandas读取EXCEL列名重复问题解决——pandas设置多行为列名(多层列名)
问题呈现 这是我在问答区看到的一个问题。 问:在python中使用pandas读取Excel数据,重复数据被区分了,如何做到重复数据不被区分? 解决思路 很明显,这是pandas读取excel文件时列名设置问题,我第一时间想…...
CMake常用语法
1. cmake_minimum_required(VERSION 3.4.1) 指定需要的最小的cmake版本 2. aux_source_directory 查找源文件并保存到相应的变量中: #查找当前目录下所有源文件并保存至SRC_LIST变量中 aux_source_directory(. SRC_LIST)3. add_library 3.1 添加一个库 add_library(<n…...
Java知识复习(一)基础知识
1、什么是JVM、JDK和JRE? JVM是指运行Java字节码的虚拟机。而字节码文件指的就是扩展名为.class的文件,JDK指功能齐全的Java SDK,能够创建和编译程序JRE指Java运行的环境,包括JVM、类库和命令等 2、重载和重写的主要区别 重载&…...
springboot+vue.js校园车辆用车预约管理系统
springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 前端技术:nodejsvueelementui本项目的应用场景描述如下&…...
【 K8s 源码之调度学习】Pod 间亲和性和反亲和性的源码分析
查看案例 字段含义podAffinityPod 间的亲和性定义podAntiAffinityPod 间的反亲和性定义requiredDuringSchedulingIgnoredDuringExecution硬性要求,必须满足条件,保证分散部署的效果最好使用用此方式preferredDuringSchedulingIgnoredDuringExecution软性…...
Appium环境搭建:Java/Node.js/ADB/Xcode可信三角验证指南
1. 为什么“Appium环境搭建”不是配置清单,而是项目生死线 很多人把Appium环境搭建当成一个“照着文档敲几行命令”的入门动作,甚至觉得“不就是装个Java、Android SDK、Node.js,再下个Appium Desktop点开就行?”——我去年带三个…...
ArcGIS Pro 基础:县级人口图斑分级设色显示
首先确定图斑数据和属性数据,如下:对图层名称进行修改。右键图层属性,对常规里的名称进行修改。右键图层,打开【符号系统】。【主符号系统】选择【分级色彩】;【归一化】选择【无】;【方法】选择【自然间断…...
ANI-RSS界面美化终极指南:5个技巧打造专属追番体验
ANI-RSS界面美化终极指南:5个技巧打造专属追番体验 【免费下载链接】ani-rss 基于RSS自动追番、订阅、下载、刮削、洗版 项目地址: https://gitcode.com/gh_mirrors/an/ani-rss 你是否厌倦了千篇一律的软件界面?想要让你的追番工具拥有独一无二的…...
SQL 模糊查询 + NULL 空值。LIKE 通配符 % 和_、IS NULL
前言学会精准条件查询后,工作中又会遇到新难题:需要按关键词模糊搜索,比如搜姓张、名字带 “明” 的用户,不会写 LIKE;分不清 % 和 _ 两个通配符到底有什么区别,经常用错;数据表有空值 NULL&…...
三国杀卡牌DIY终极指南:5分钟打造你的专属武将
三国杀卡牌DIY终极指南:5分钟打造你的专属武将 【免费下载链接】Lyciumaker 在线三国杀卡牌制作器 项目地址: https://gitcode.com/gh_mirrors/ly/Lyciumaker 还在羡慕别人能设计出酷炫的三国杀武将卡牌吗?Lyciumaker这个免费开源的三国杀卡牌制作…...
NotebookLM效应量计算合规性危机:FDA/EMA/NMPA最新AI辅助研究指南对效应量报告的强制性要求(附自查清单V2.3)
更多请点击: https://intelliparadigm.com 第一章:NotebookLM效应量计算合规性危机的定义与背景 NotebookLM 效应量计算合规性危机,是指当研究者在使用 Google NotebookLM(一款基于 LLM 的文档理解与推理工具)辅助开展…...
如何快速掌握GetQzonehistory:QQ空间备份的完整教程
如何快速掌握GetQzonehistory:QQ空间备份的完整教程 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心多年积累的QQ空间说说会随着时间流逝而消失?那些记…...
AArch64 SCTLR_EL3寄存器解析与安全配置实践
1. AArch64 SCTLR_EL3系统控制寄存器深度解析在Armv8-A/v9-A架构的安全世界中,SCTLR_EL3寄存器扮演着系统控制中枢的角色。作为EL3(最高特权级别)的系统控制寄存器,它直接决定了安全监控模式(Secure Monitor࿰…...
Stacking集成在脑瘤影像分类中的临床价值与实操要点
1. 项目概述:为什么 stacking 不是“堆叠玩具”,而是脑瘤分类里最值得细嚼的那块硬骨头在医学影像AI落地的真实战场上,单模型准确率卡在92%就再也上不去,不是因为数据不够多,也不是因为GPU不够猛,而是因为不…...
Gemini 3.5十大应用场景:从代码生成到视频创作
一、软件开发场景 1.1 代码自动生成 Gemini 3.5 Flash在编码基准测试中达到76.2%,可以: 理解复杂技术文档生成高质量代码自动编写测试用例 # 代码生成示例 prompt """ 根据以下需求编写Python代码: 1. 创建一个REST API服…...
