ElasticSearch 分片内部的原理

本文深入探讨了ElasticSearch分片的工作原理,解释了为何搜索是近实时的,详细介绍了索引与分片的区别,以及Translog在数据持久化和实时性中的关键作用。同时,阐述了段合并过程,以优化存储和搜索性能。

在集群内的原理, 我们介绍了分片, 并将它描述成最小的 ElasticSerch工作单元 。但是究竟什么是 一个分片,它是如何工作的? 在这个章节完后,下面你便会得到下面问题的答案。

(1)为什么搜索是近实时的?
(2)为什么文档的 CRUD (创建-读取-更新-删除) 操作是实时的?
(3)Elasticsearch 是怎样保证更新被持久化,在断电时也不丢失数据?

为什么搜索是近实时的?

关于近实时的定义:文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。
1、作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。
2、每个分片具有性能较高的倒排索引(相比B-tree更为优秀,trie字典树+FST压缩技术)
3、Lucene的段(segment)技术
4、关于一些消耗高昂query的缓存,和文档数较多的segment的缓存

关于第3点我们下面详细讨论下

索引与分片的区别

容易被混淆的概念是,一个 Lucene 索引 我们在 Elasticsearch 称作分片 。 一个 Elasticsearch 索引是分片的集合。 当 Elasticsearch 在索引中搜索的时候, 它发送查询到每一个属于索引的分片(Lucene 索引),然后合并每个分片的结果到一个全局的结果集。

Elasticsearch 基于 Lucene这个库引入了按段搜索的概念。还增加了 提交点 的概念 — 一个列出了所有已知段的文件。

如图,例如此lucu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Think_Higher

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值