2017-02-13 11 views
0

私は935のigniteサーバインスタンスI0, I1,..., I8を持っています。これは、からパラレルでkafkaのデータをロードしているPARTITIONEDモードのキャッシュを持っています。ここでパーティションP0, P1....P8には、フィールドseq_noで一意に識別できるエントリの数が含まれています。また、1つのパーティションから1つのインスタンスのみにエントリを配置するのにpart_IDを使用しています。私はそうIgniteインスタンス間でのデータの均等分配

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

、とキーが定義されている、私は、発火のインスタンスやパーティションなどにキャッシュエントリの間に1対1のマッピングを達成しようとしています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 

アフィニティコロケーション一部がここで達成される。すなわち、同じパーティションIDを持つエントリが発火同じインスタンス上にキャッシュされます、IS取得しています。しかし、データが点火インスタンスに均等に分配されていない、すなわち、I4およびI7が2パーティションのデータを保持し、I0およびI2にデータが含まれていない。だから、ここでどのようにデータを均等に分配して、各igniteインスタンスが1つのパーティションデータを取得できるのでしょうか?

答えて

0
  1. あなたは親和性のキーを削除しようとすると、データがすべてのノード間で均等に分散されているかどうかを確認できますか?
  2. すべてのIgniteサーバーが同じIgniteクラスタの一部であり、すべてのサーバーが同じヒープスペースを割り当てられていることを確認します。これが起こる理由の1つは、サーバー0とサーバー2に十分なヒープ・スペースがない可能性があることです。 1を指すように答えがイエスである場合

また、その後、私はあなたがあなた自身の親和性の機能を実装しなければならないと思い

関連する問題