2017-02-13 9 views
0

У меня есть 9 экземпляров сервера-активистов I0, I1,..., I8, у которого есть кеш в PARTITIONED режиме, в котором я параллельно загружаю данные из разделов P0, P1.....P8 в kafka. Здесь раздел P0, P1....P8 содержит количество записей, которые могут быть однозначно идентифицированы по полю seq_no, также я использую part_ID для сопоставления записей из одного раздела только в один экземпляр. Я определил, как ключ,Равное распределение данных между экземплярами Ignite

class key() 
{ 
     int seq_no; 
     @AffinityKeyMapped 
     int part_ID; //for collocating entries from one partition to one instance only 
} 

Итак, я пытаюсь достичь один в один отображении между записями кэша в воспламенить случаи и перегородки например I0->P0, I1->P1, .......,I8->P8. Но в моем случае отображении я получаю есть

I0-> NULL(No Entries), 
I1-> P5, 
I2-> NULL, 
I3-> P7, 
I4-> P2, P6 
I5-> P1 
I6-> P8 
I7-> P0, P4 
I8-> P3 

Affinity коллокация часть достигается здесь есть записи с таким же идентификатором секции получают кэшируются на одном воспламенить экземпляр. Но данные неравномерно распределены между экземплярами воспламенения, то есть I4 и I7 содержат данные из двух разделов, тогда как I0 и I2 не содержат никаких данных. Итак, как мы можем добиться равного распределения данных, чтобы каждый экземпляр воспламенения получал один раздел данных?

ответ

0
  1. Не могли бы вы попробовать удалить ключ сродства и проверить, если данные равномерно распределены между всеми узлами?
  2. Проверьте, все ли серверы Ignite являются частью одного и того же кластера Ignite и все они имеют одинаковое пространство кучи, выделенное для них. Одна из причин, по которой это может произойти, состоит в том, что сервер 0 и сервер 2 могут не иметь достаточного количества кучи.

Кроме того, если ответ на пункт 1 да, то я думаю, вы бы реализовать свою собственную функцию сродства

Смежные вопросы