我们希望设置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的副本吗?
答案 0 :(得分:3)
感谢您的提问 - 我看到global = true的文档有点令人困惑。
在你的情况下,你想要分片,即在4个节点上分发每个文件的2个副本(如果我错了,请纠正我)。
全局通常用于http://docs.vespa.ai/documentation/search-definitions.html#document-references之类的父文档 - 在您的情况下,您只有文档类型(我假设),因此没有父级,所以不要使用全局
全局功能将在4个节点上分发4个副本(如果这是你想要的,请设置redundancy = 4)。但也不需要在这里使用全球。