我正在学习Elasticsearch(版本5.3.0(的工作原理,以便尝试使用它。我也阅读了文档,Elasticsearch Reference和一些ES博客文章,但我找不到索引(分片?(恢复的工作原理。
假设节点 A 关闭,然后再次变为活动状态。如果群集未停止其活动,并且某些文档已编制索引,则这些更改如何与节点 A 同步?ES 是否替换所有文件,或者是否有一种机制仅将更改传达给该节点?
欢迎参考资料和文档。
提前感谢您的回复。
如今,Elasticsearch 正在主分片中的段(文件(和副本分片中的段(文件(之间进行差异。不同的是从主数据库复制新的。
将来(ES 6(,将会有序列ID:https://github.com/elastic/elasticsearch/issues/10708
这样做的好处是,ES 将首次尝试比较主 ID 和副本的序列 ID,并查看它们之间的"距离"有多远。如果来自主分片的 translog 仍然具有自副本脱机以来的所有更改,则 ES 将简单地重放副本分片上主分片 translog 中的操作。如果不是所有操作都存在,那么它将回到不同的段(当前方法(。