news 2026/7/28 20:46:19

【Elasticsearch】副本恢复机制文件级(file-based)操作级(ops-based)顶级理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Elasticsearch】副本恢复机制文件级(file-based)操作级(ops-based)顶级理解

两种恢复最终都要**让副本的 Lucene 段文件跟主分片一致**,但“动手对象”不同:

1. **文件级(file-based)**
- 直接复制**整个段文件(.cfs、.si、.dvd …)**到副本节点
- 副本**原样替换**自己的目录,**不再逐条解析**
- 过程中**不打开 Lucene 文档**,只搬运字节;最后由副本自己打开 IndexWriter 做一次 commit 即可

2. **操作级(ops-based)**
- 不复制段文件,而是**一条条发 Translog.Operation**
- 副本收到后,**在本地的 IndexWriter 上重放**:addDocument、deleteDocument、updateDocument …
- 每条操作都会**实时写副本的 Lucene 段**,也会写副本的 translog,最后 commit

→ 所以:

- **文件级**:**主分片**的 Lucene 文件 → **副本磁盘**(字节搬运)
- **操作级**:**主分片**的 Lucene 文档 → **反序列化成操作** → **副本 IndexWriter** → **副本的 Lucene 文件**(逐条写入)

**最终都是让副本的 Lucene 段保持一致,只是路径不同:一个“整块复制”,一个“逐条重放”。**

操作级(ops-based)恢复跟**物理 translog 文件**完全无关:

1. 主分片**不读自己的 `.tlog` 文件**;
2. 用 `LuceneChangesSnapshot` **直接从 Lucene 倒排表里**按 `_seq_no` 把文档/墓碑捞出来;
3. 现场包成 `Translog.Index` / `Delete` / `NoOp` 对象发给副本;
4. 副本收到后,**在自己的 IndexWriter 上重放**这些操作,生成**自己的** Lucene 段。

因此整个流程**既不读主分片的 translog 文件,也不依赖 translog 文件做传输**,只是借用了“Translog.Operation”这个统一的数据结构而已。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/27 13:51:14

Docker中调试Vercel AI SDK的3个隐藏技巧,90%开发者都不知道

第一章:Docker中调试Vercel AI SDK的核心挑战在容器化环境中使用 Vercel AI SDK 时,开发者常面临运行时依赖缺失、网络隔离和日志输出受限等问题。由于 Docker 容器默认以最小化镜像构建,缺少必要的调试工具链,使得传统本地调试手…

作者头像 李华
网站建设 2026/7/25 18:06:52

VSCode + Qiskit 环境配置验证全攻略(从零到运行仅需8分钟)

第一章:VSCode Qiskit 的配置验证在完成 VSCode 与 Qiskit 环境的初步搭建后,必须对配置进行系统性验证,以确保开发环境能够正确执行量子计算任务。验证过程涵盖 Python 解释器选择、Qiskit 库导入测试以及简单量子电路的运行。Python 与 Qis…

作者头像 李华
网站建设 2026/7/28 9:27:06

语雀文档备份完整指南:5分钟学会离线文档制作

语雀文档备份完整指南:5分钟学会离线文档制作 【免费下载链接】yuque2book export yuque repo to a book 将你的语雀文档导出的工具 项目地址: https://gitcode.com/gh_mirrors/yu/yuque2book 还在担心语雀文档丢失或无法离线查看吗?yuque2book工…

作者头像 李华
网站建设 2026/7/27 23:07:28

LinearDesign深度解析:5大核心优势助力mRNA序列优化革命

LinearDesign深度解析:5大核心优势助力mRNA序列优化革命 【免费下载链接】LinearDesign The LinearDesign mRNA design software. 项目地址: https://gitcode.com/gh_mirrors/li/LinearDesign LinearDesign作为百度研究院开发的创新mRNA设计软件,…

作者头像 李华
网站建设 2026/7/26 9:59:15

Docker Offload任务分配实战精要(附高并发场景调优案例)

第一章:Docker Offload任务分配的核心概念Docker Offload 是一种优化容器资源调度的机制,旨在将特定任务从主机卸载到专用执行环境,从而提升整体系统性能与资源利用率。该机制广泛应用于边缘计算、异构硬件协同和高性能计算场景中。任务卸载的…

作者头像 李华
网站建设 2026/7/29 19:14:20

窗口置顶功能:打造高效多任务工作环境

窗口置顶功能:打造高效多任务工作环境 【免费下载链接】pinwin .NET clone of DeskPins software 项目地址: https://gitcode.com/gh_mirrors/pi/pinwin 你是否曾经在繁重的多任务处理中感到力不从心?😩 参考资料被层层窗口淹没&#…

作者头像 李华