Elasticsearch 索引恢复

Elasticsearch indices recovery

我正在学习 Elasticsearch(5.3.0 版)的工作原理,以便尝试使用它。我也阅读了文档、Elasticsearch 参考和一些 ES 博客文章,但我找不到索引(分片?)恢复的工作原理。

假设节点 A 关闭,然后再次激活。如果集群没有停止它的 activity 并且一些文档被索引,这些更改如何与节点 A 同步? ES 是否会替换所有文件,或者是否有一种机制仅将更改传达给该节点?

欢迎参考和文档。

提前感谢您的回复。

最近,Elasticsearch 正在对主分片中的段(文件)和副本分片中的段(文件)进行比较。不同的是从主副本复制过来。

虽然在未来(ES 6),会有序列 ID:https://github.com/elastic/elasticsearch/issues/10708

拥有这些的好处是 ES 将首先尝试比较来自主副本和副本的序列 ID,并查看它们 "far" 如何分开。如果来自主分片的 translog 仍然有自从副本下线以来的所有更改,ES 将简单地在副本分片上重放主分片 translog 中的操作。如果不再有所有操作,那么它将返回到段差异(当前方法)。