我正在学习Elasticsearch(版本5.3.0)如何工作以尝试使用它。我也阅读了文档,Elasticsearch Reference和一些ES博客文章,但我无法找到索引(分片?)恢复的工作原理。
假设节点A关闭,然后再次变为活动状态。如果群集没有停止其活动并且某些文档已编制索引,那么这些更改如何与节点A同步? ES是否替换所有文件,或者是否存在仅与该节点进行通信的机制?
欢迎参考文献和文献。
提前感谢您的回复。
答案 0 :(得分:2)
现在,Elasticsearch正在主分片中的片段(文件)与副本分片中的片段(文件)之间进行区分。不同的是从主要文件中复制新内容。
将来虽然(ES 6),但会有序列ID:https://github.com/elastic/elasticsearch/issues/10708
拥有这些功能的优势在于ES将首次尝试比较主要和副本的序列ID,并了解它们之间的距离是多远。如果来自主分片的translog仍然具有自副本脱机以来的所有更改,则ES将仅重放副本分片上主分片translog中的操作。如果不是所有操作都在那里,那么它将返回到区域差异(当前方法)。