Зачем и когда использовать Vnodes в Cassandra в реальных производственных сценариях?

Я понимаю, что вам не нужно перебалансировать vnodes, но когда мы действительно используем его в производственных сценариях? работает ли он так же, как физический узел с одним токеном? Если да, то зачем вообще использовать узлы с одним токеном? Помогают ли vnodes, если у меня большой объем данных и размер кластера (скажем, 300 узлов)?


person user1870400    schedule 09.10.2015    source источник


Ответы (2)


Основным преимуществом использования vnodes является более равномерное распределение потоков данных при загрузке нового узла. Почему? Что ж, при добавлении нового узла он будет запрашивать данные в своем диапазоне токенов. В оптимальном случае данные, которые он запрашивает, будут равномерно распределены по всем узлам, что снизит нагрузку на все узлы, отправляющие данные на узел начальной загрузки (а также ускорит процесс начальной загрузки).

Как только у вас будет большое количество физических узлов, например 300, может показаться, что это преимущество будет уменьшено (при условии отсутствия проблем с горячими точками или разделением данных). Мне неизвестны фактические рекомендации, касающиеся количества узлов, которые следует использовать или не использовать vnodes, кроме тех, что указаны в документации. Да, это видно в производстве.

Дополнительную информацию можно найти здесь: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/config/configVnodes.html

person Chris Gerlt    schedule 09.10.2015

В дополнение к отличному ответу Криса я сделаю дополнение. Если у вас есть большой кластер с vnode, полезно позволить Cassandra управлять диапазонами токенов. Без vnodes вам пришлось бы самостоятельно определять размер и повторно указывать диапазон токенов для каждого (существующего и) нового узла. С помощью vnodes Cassandra сделает это за вас.

Сравните разницу в шагах, перечисленных в документации:

Добавление узла без vnodes: http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsAddRplSingleTokenNodes.html

vs.

Добавление с помощью vnodes: http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_add_node_to_cluster_t.html

person Aaron    schedule 09.10.2015