Почему hazelcast имеет количество разделов по умолчанию 271 и какие параметры выбрать?

Я только что просмотрел документацию по hazelcast.

Это предполагает, что данные разделены по всем узлам.

И количество созданных разделов в кластере по умолчанию 271!

Какие параметры определяют выбор правильного значения счетчика разделов. И почему количество разделов по умолчанию равно 271?


person Rakesh Waghela    schedule 11.05.2013    source источник


Ответы (1)


271 — простое число. При наличии любого ключа Hazelcast хеширует ключ и модифицирует его с помощью количества разделов. В этом контексте считается, что простые числа генерируют более псевдослучайный результат. На самом деле, с точки зрения пользователя, не так важно, чтобы он был основным.

Тогда вы можете спросить, почему именно 271, а не другое простое число.

Просто потому, что 271 — это хорошее число, которое будет почти равномерно распределяться, когда у вас меньше 100 узлов. Когда у вас более 100 узлов, вам нужно увеличить его, чтобы сделать распределение равномерным.

Еще одна причина увеличить количество разделов — это когда у вас большой объем данных. Скажем, у вас есть 300 ГБ данных для хранения в сетке данных. Тогда каждый раздел будет иметь более 1 ГБ, и миграция займет слишком много времени. Обратите внимание, что во время миграции все обновления для этого раздела блокируются. Ради задержки вы хотели бы иметь небольшие данные на раздел. Поэтому увеличьте его до числа, при котором вас устраивает задержка перемещения разделов.

Обратите внимание, что разделы будут перенесены только при добавлении нового узла.

person Fuad Malikov    schedule 17.05.2013
comment
Как вы обсуждаете, Hazelcast рекомендует ‹ 100 МБ на раздел для задержки, а также около 40 разделов на узел для более равномерного распределения, поэтому хорошей целью является выбор простого числа около 40 x число узлов. - person Daniel Widdis; 14.05.2015