2

只是想知道为什么 elasticsearch 仍然使用简单的路由值方法来决定数据必须存储到哪个分片。实际上,这种方法限制了我们将来更改分片的数量。如果 elasticsearch 使用一致散列(甚至更好的技术)之类的方法,它可以让我们有机会在未来更改分片数。有人对此有解释或想法吗?

4

1 回答 1

3

从 Elasticsearch 6.1.0 版开始,可以进行索引拆分。请参阅发行说明:https ://www.elastic.co/blog/elasticsearch-6-1-0-released 。

拆分索引文档实际上更详细地解释了 Elasticsearch 不使用一致性哈希的原因。

当分片数量从 N 增加到 N+1 时,一致性哈希只需要重新定位 1/N 的键。然而,Elasticsearch 的存储单元,分片,是 Lucene 索引。由于它们面向搜索的数据结构,占用了 Lucene 索引的很大一部分,无论是仅 5% 的文档,删除它们并在另一个分片上索引它们通常比键值存储的成本高得多。

于 2021-05-30T22:16:52.880 回答