所有分片(索引内)是否具有相同的内容?

时间:2019-06-16 14:07:00

标签: elasticsearch

所有分片(索引内)是否具有相同的内容?

如果是,更多的分片=更长的传播(保存)时间? 如果不是,则其中一个分片失败=合并时数据不完整?

2 个答案:

答案 0 :(得分:2)

首先,您需要了解什么是分片,以及为什么在像Elasticsearch这样的分布式系统中分片如此重要。您可以阅读有关分片here herehere的一些不错的资源。

现在要问您的问题,

  

所有分片(索引内)是否具有相同的内容。

答案是(假设您在这里指的是主分片,当然,副本分片只是主分片的副本),让我们举个例子。

您的索引包含大约1亿个文档,并且您有10个数据节点集群,然后您希望水平扩展索引,因此首先要设置10个主要分片和1个副本分片。在这种情况下,elasticsearch会将您的数据物理上划分为10个主要分片,并且每个主要分片将位于集群的不同节点上,因为有10个数据节点,并且每个主要分片的副本也称为分片的副本,在其主要分片的另一个节点上。

现在是您的后续问题。

  

如果是,更多的分片=更长的传播(保存)时间?如果没有,当一个   的碎片失败=合并时数据不完整?

由于Elasticsearch不会在所有主分片中存储相同的数据,因此更多的分片意味着更长的传播或节省时间是无效的,并且当其中一个分片发生故障时,elasticsearch也会从其副本分片中恢复其数据因为它实际存在于其他数据节点服务器上。

红利提示:-分片用于拆分数据并使应用程序水平可扩展,而副本则用于使应用程序具有高度可用性,因为它包含重复的数据,因此应用程序可以轻松地从您的方案中恢复在后续问题中刚刚问到。

让我知道您是否需要任何澄清或更多详细信息。

答案 1 :(得分:0)

简短答案:

Q-1:否

if-no:如果index没有副本,则它会影响整个索引,但不会影响该索引的其他分片。

请阅读此文档: https://www.elastic.co/guide/en/elasticsearch/reference/6.2/_basic_concepts.html