Кто-нибудь писал пользовательскую функцию Affinity? - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу, чтобы все узлы в кластере имели одинаковую загрузку данных.С функцией Affinity по умолчанию это не происходит.

На данный момент у нас есть 3 узла.Мы используем идентификатор группы в качестве ключа соответствия, и у нас есть 3 идентификатора группы (1, 2 и 3).И мы ограничиваем разделы кэша идентификаторами групп.Общие узлы = идентификаторы групп = разделы кэша.Так что каждый узел имеет одинаковое количество разделов.

Будет ли хорошо написать собственную функцию Affinity?И что мы потеряем при этом?Кто-нибудь писал пользовательскую функцию Affinity?

1 Ответ

0 голосов
/ 27 февраля 2019

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

Так что да, написание новой функции сродства сработало бы.Недостатки в том, что вам нужно сделать это быстро (это называется много), и вы бы жестко запрограммировали его для вашей текущей топологии узла.Что происходит, когда вы решаете добавить новый узел?Что происходит, когда узел выходит из строя?Кроме того, вы потенциально можете поместить все свои данные в три раздела, что затруднит их масштабирование (одно из главных преимуществ архитектуры Ignite).

В качестве альтернативы я бы посмотрел на вашу модель данных,Разделение ваших данных на три части слишком грубое, чтобы все работало автоматически.

...