Как настроить шарды в Веспе?

Мы хотим настроить кластер из 4 узлов для размещения данных. И в кластере размещается только один индекс, поэтому у всех 4 узлов одинаковый тип данных.

Наша цель - защитить данные на узлах. Скажем, два осколка и две реплики. (всего 4 узла для размещения этих 4 разделов данных)

Режим документа - "индекс", а глобальный - "истина".

   <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 узла, чтобы иметь все данные, и каждый будет содержать копию данных. Согласно http://docs.vespa.ai/documentation/content/data-placement.html - нам нужно global=true. И заметил:

Примечание. Функция глобальных документов находится в стадии разработки. В настоящее время он доступен только для установок, где все документы уже присутствуют на всех узлах, то есть N групп, каждая из которых содержит один узел.

Как распространять данные в шардах? Можем ли мы сделать, чтобы узлы 1 и 2 имели распределенные данные, а узлы 3 и 4 могут иметь их копию с избыточностью 2?

1 ответ

Решение

Спасибо за вопрос - я вижу, что документация global=true немного сбивает с толку.

В вашем случае вы хотите разделить, то есть распределить 2 копии каждого документа по 4 узлам (поправьте меня, если я ошибаюсь).

global обычно используется для родительских документов, как в http://docs.vespa.ai/documentation/search-definitions.html - в вашем случае у вас есть только тип документа (я полагаю), следовательно, нет родителей, поэтому не использовать глобальный

Глобальная функция будет распределять 4 реплики по 4 узлам (если это то, что вы хотите, пожалуйста, установите избыточность =4). но нет необходимости использовать глобальный здесь тоже.

Другие вопросы по тегам