如何在Vespa中配置分片?

时间:2017-10-26 05:50:49

标签: vespa

我们希望设置4个节点的集群来托管数据。并且集群仅承载一个索引,因此在所有4个节点中具有相似的数据类型。

我们的目标是在节点上使用分片数据。让我们说两个碎片和两个复制品。 (共有4个节点来承载这4个数据分区)

文档模式为“index”,global为“true”。

   <redundancy>2</redundancy>

   <nodes>
      <node hostalias="node1" distribution-key="0"/>
      <node hostalias="node2" distribution-key="1"/>
      <node hostalias="node3" distribution-key="2"/>
      <node hostalias="node4" distribution-key="3"/>
    </nodes>        

    <engine>
      <proton>
        <searchable-copies>2</searchable-copies>
        <flush-on-shutdown>true</flush-on-shutdown>
      </proton>
    </engine>

services.xml的上面配置不允许。它要求冗余至少与节点数相同,我们需要配置,

<redundancy>4</redundancy>

<searchable-copies>4</searchable-copies>

让它接受有效的配置。

这就是将所有4个节点配置为拥有所有数据,每个节点都包含数据副本。根据{{​​3}} - 我们需要global = true。并注意到:

  

注意:全局文档功能正在开发中。它是   目前仅适用于所有文件已经存在的设置   固有地存在于所有节点上,即每组包含一个节点的N个组。

如何在分片中分发数据?我们可以让node1和node2拥有分布式数据吗?node3和node4可以拥有冗余2的副本吗?

1 个答案:

答案 0 :(得分:3)

感谢您的提问 - 我看到global = true的文档有点令人困惑。

在你的情况下,你想要分片,即在4个节点上分发每个文件的2个副本(如果我错了,请纠正我)。

全局通常用于http://docs.vespa.ai/documentation/search-definitions.html#document-references之类的父文档 - 在您的情况下,您只有文档类型(我假设),因此没有父级,所以不要使用全局

全局功能将在4个节点上分发4个副本(如果这是你想要的,请设置redundancy = 4)。但也不需要在这里使用全球。