在Elasticsearch中,Translog日志的提交确实涉及到与刷新(Refresh)时写入Lucene段的数据进行合并,并最终写入磁盘。以下是详细的步骤和解释:

 

一、Translog日志的提交过程

1. 刷新(Refresh)操作

   - 写入Lucene段:刷新操作会将内存中的索引缓冲区(Index Buffer)中的数据写入到Lucene的倒排索引中,并创建一个新的Lucene段(Segment)。这个过程使得新写入的数据对搜索操作可见。

   - 文件系统缓存:刷新操作将数据写入到文件系统缓存(File System Cache)中,而不是直接写入到磁盘。文件系统缓存是操作系统的内存区域,用于缓存磁盘I/O操作。

   - 段的创建:刷新操作会创建一个新的Lucene段,但这个段是暂时存储在文件系统缓存中的,还没有完全写入到磁盘。

 

2. Translog记录

   - 记录操作:在刷新操作的同时,Elasticsearch会将所有写入操作记录到Translog中。Translog是一个持久化的日志文件,记录了所有未提交的写入操作,以保证数据的可靠性。

   - Translog文件:Translog文件存储在Elasticsearch的数据目录中,具体路径为:

     

```

     /path/to/elasticsearch/data/nodes/<node_id>/indices/<index_uuid>/<shard_id>/translog/

     ```

 

3. 提交(Commit)操作

   - 合并数据:提交操作会将文件系统缓存中的Lucene段完全写入到磁盘中,并清理Translog。在提交过程中,Elasticsearch会将Translog中的操作与文件系统缓存中的Lucene段进行合并。

   - 写入磁盘:提交操作会将合并后的数据完全写入到磁盘中,确保数据的持久化。这个过程会创建一个新的Lucene提交点(Commit Point),记录当前索引的状态。

   - 清理Translog:提交操作完成后,Elasticsearch会清理Translog中已提交的操作,释放磁盘空间。清理后的Translog只保留尚未提交的写入操作。

 

二、详细步骤

1. 写入内存缓冲区:

   - 客户端发送写入请求,Elasticsearch将数据写入到内存中的索引缓冲区(Index Buffer)。

   - 同时,Elasticsearch将写入操作记录到Translog中。

 

2. 刷新操作:

   - 当内存缓冲区的数据达到一定大小或经过一定时间后,Elasticsearch会将内存缓冲区的数据刷新到Lucene索引中,创建一个新的Lucene段。

   - 这个Lucene段被写入到文件系统缓存中,使数据对搜索操作可见。

 

3. 提交操作:

   - 定期(默认30分钟)或在Translog达到一定大小时,Elasticsearch会触发提交操作。

   - 提交操作会将文件系统缓存中的Lucene段完全写入到磁盘中,并创建一个新的Lucene提交点。

   - 提交操作会将Translog中的操作与文件系统缓存中的Lucene段进行合并,确保所有未提交的操作都被持久化。

   - 提交操作完成后,Elasticsearch会清理Translog中已提交的操作。

 

三、总结

- 刷新操作:将内存中的数据写入到Lucene段中,并存储在文件系统缓存中,使数据对搜索可见。

- 提交操作:将文件系统缓存中的Lucene段完全写入到磁盘中,清理Translog,确保数据的持久化。

- 合并数据:提交操作会将Translog中的操作与文件系统缓存中的Lucene段进行合并,确保所有未提交的操作都被持久化。

 

通过合理配置刷新和提交操作的频率,可以平衡搜索性能和数据可靠性,满足不同应用场景的需求。

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

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

相关文章

服务器异常宕机或重启导致 RabbitMQ 启动失败问题分析与解决方案

服务器异常宕机或重启导致 RabbitMQ 启动失败问题分析与解决方案 一、深度故障诊断与解决方案1. 权限配置不当故障2. 端口占用故障3. 数据目录残留故障 二、故障类型对比与诊断矩阵三、完整恢复流程&#xff08;10步法&#xff09;四、风险规避与最佳实践&#x1f6e1;️ 数据保…

车载以太网都有什么协议?

目录 一、物理层协议(Physical Layer)二、数据链路层协议(Data Link Layer)三、网络层协议(Network Layer)四、传输层协议(Transport Layer)五、应用层协议(Application Layer)六、车载网络融合协议七、标准化组织八、协议分层总结表九、趋势与未来协议车载以太网涉及…

设计模式之外观模式:简化复杂系统的优雅之道

设计模式之外观模式&#xff1a;简化复杂系统的优雅之道 今天我们来深入探讨设计模式中的外观模式&#xff08;Facade Pattern&#xff09;。想象一下&#xff0c;你走进一家高档餐厅&#xff0c;只需要告诉服务员"我要一份A套餐"&#xff0c;而不需要关心厨房里厨师…

《Python 架构之美:三大设计模式实战指南》

《Python 架构之美:三大设计模式实战指南》 在软件世界中,设计模式是经验的结晶,它为开发者提供了解决重复问题的通用模板。尤其在 Python 这种灵活而强大的语言中,设计模式并非“死规矩”,而更像“编程哲学”,为我们解构复杂系统、提升代码可维护性提供了宝贵思路。 本…

力扣打卡第十八天 判定平衡二叉树

110. 平衡二叉树 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,3,3,null,null,4,4] 输出&#xff1a;false示例 3&#xf…

Python 物联网(IoT)与边缘计算开发实战(1)

Python 物联网(IoT)与边缘计算开发实战 https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 物联网基础与硬件交互 Raspberry Pi GPIO控制 python import RPi.GPIO as GPIO import time # 设置GPIO模式 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(F…

高通SG882G平台(移远):1、编译脚本

文档提供的编译&#xff0c;有点问题。所以我重新整理了脚本。 build-lib.sh #!/bin/bashfunction prepare_build() {if [ ! -d download ]; thenmkdir downloadfilocal MODIFIED_DIRfile-replacelocal FILE_NAMEset_bb_env.shcp ${MODIFIED_DIR}/${FILE_NAME} \poky/qti-con…

Mac电脑 触摸板增强工具 BetterTouchTool

BetterTouchTool mac版&#xff0c;是一款触摸板增强工具&#xff0c;允许用户使用各种手势来控制其计算机。 Bettertouchtool mac是一个小而高效的macOS应用程序&#xff0c;旨在帮助您为手势定义快捷方式。 此外&#xff0c;Bettertouchtool可用于使用常规鼠标和键盘快捷键…

LSTM(Long Short-Term Memory)模型的深度解析

在6.28号我发了一个博客《RNN&#xff08;循环神经网络&#xff09;与LSTM&#xff08;长短期记忆网络&#xff09;输出的详细对比分析》&#xff0c;但是我并未详细讲解LSTM&#xff0c;LSTM是循环神经网络中的一个模型&#xff0c;然而通过这篇博客给大家深度解析一下LSTM&am…

WebRTC 安全性分析研究

一、概述 本文着重分析 WebRTC 的安全性&#xff0c;分析其安全性考虑及安全性实现&#xff0c;回答了以下问题: WebRTC 加密过程需要或依赖 CA (Certificate Authority)吗? 不需要 CA, 但可能依赖 CA.DTLS-SRTP 加密机制中, DTLS 与 SRTP 的关系是什么? DTLS 实现秘钥交换…

阿里云操作系统控制台如何解决三大OS运维难题?

背景 操作系统运维常常遇到以下问题&#xff1a; 1.问题定界浪费大量人力&#xff1a;当业务出现问题时&#xff0c;客户在不清楚是操作系统问题还是业务问题时&#xff0c;往往会拉上所有相关团队一起排查&#xff0c;浪费人力。 2.问题定位时间长&#xff1a;通过操作系统…

自由学习记录(65)

其他脚本语言也可以热更新&#xff0c;但 Lua 特别适合&#xff0c;游戏主程序通常是 C&#xff0c;Lua 只是逻辑脚本&#xff0c;改 Lua 不影响主程序运行 语言应用场景PythonWeb 后端 / 数据处理服务JavaScript浏览器端热重载 / React HMRC#Unity 的 ILRuntime / HybridCLR …

抗辐照芯片在核电厂火灾探测器中的应用优势与性能解析

一、引言 核电厂作为能源供应的关键设施&#xff0c;其安全性备受关注。火灾是威胁核电厂安全运行的重要风险因素之一。在核电厂的特殊环境下&#xff0c;火灾探测器肩负着及时发现火情、保障核电厂安全运行的重任。然而&#xff0c;核电厂存在高能辐射等复杂环境因素&#xf…

FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南

作为一名开发者&#xff0c;你是否曾想过亲手搭建一个包含用户注册、登录认证和文件上传功能的完整 Web 系统&#xff1f;今天&#xff0c;我将带大家一步步拆解一个基于FastAPI&#xff08;后端&#xff09;和原生 JavaScript&#xff08;前端&#xff09;的前后端分离项目&am…

【动态规划】P11188 「KDOI-10」商店砍价|普及+

本文涉及知识点 C动态规划 P11188 「KDOI-10」商店砍价 题目背景 English Statement. You must submit your code at the Chinese version of the statement. 您可以点击 这里 下载本场比赛的选手文件。 You can click here to download all tasks and examples of the c…

国产LHR3040芯片是REF5040的代替品

LHR3040是一款噪声低、漂移低、精度高的电压基准产品系列。这些基准同时支持灌电流和拉电流&#xff0c;并且具有出色的线性和负载调节性能。采用专有的设计技术实现了出色的温漂(3ppm/℃)和高精度(0.05%)。这些特性与极低噪声相结合&#xff0c;使LHR30XX系列成为高精度数据采…

专题:2025AI营销市场发展研究报告|附400+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42800 在数字化浪潮席卷全球的当下&#xff0c;AI营销正成为驱动企业增长的核心动力。 从市场规模来看&#xff0c;AI营销正经历着爆发式增长&#xff0c;生成式AI的出现更是为其注入了强大活力。在应用层面&#xff0c;AI已渗透到营…

深入对比 Python 中的 `__repr__` 与 `__str__`:选择正确的对象表示方法

文章目录 核心概念对比1. 根本目的差异2. 调用场景对比深入解析:何时使用哪种方法场景 1:开发者调试 vs 用户展示场景 2:技术表示 vs 简化视图高级对比:特殊场景处理1. 容器中的对象表示2. 日志记录的最佳实践3. 异常信息展示最佳实践指南1. 何时实现哪个方法?2. 实现原则…

万能公式基分析重构补丁复分析和欧拉公式原理推导

基分析&#xff0c; x11 x2-1 x3i 存在加法法则 x1x20 所以x1-x2 存在链式基乘法法则 x1x1*x1x2*x2 x2x3*x3 x3x1*x3 -x1x2x3 将链式基乘法操作 二次&#xff0c;三次&#xff0c;直至n次化简得 一次 x1 -x1 x3 矩阵 x1 x1 x2 x2 x3 …