2017-02-13 3 views
0

Ich habe 9 zünden Server Instanzen I0, I1,..., I8, die Cache in PARTITIONED-Modus, in dem ich Daten parallel von Partitionen P0, P1.....P8 in kafka geladen habe. Hier enthält die Partition P0, P1....P8 die Anzahl der Einträge, die durch das Feld seq_no eindeutig identifiziert werden können, außerdem verwende ich part_ID für die Kollokation von Einträgen von einer Partition zu nur einer Instanz. I definiert haben Schlüssel wieGleiche Verteilung von Daten zwischen Ignite-Instanzen

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

Also, ich versuche 12.59 Zuordnung zwischen Cache-Einträge in Ignite-Instanzen und Partitionen zu erreichen z.B. I0->P0, I1->P1, .......,I8->P8. Aber in meinem Fall Mapping erhalte ich heißt,

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

Affinity Kollokations Teil hier erreicht wird, das heißt Einträge mit derselben Partition ID wird auf gleiche entzünden Instanz zwischengespeichert. Die Daten sind jedoch nicht gleichmäßig unter den Ignite-Instanzen verteilt, d. H. I4 und I7 enthalten die Daten von 2 Partitionen, wohingegen I0 und I2 keine Daten enthalten. Wie können wir also eine gleichmäßige Verteilung von Daten erreichen, so dass jede ignite-Instanz eine Partition erhält?

Antwort

0
  1. Könnten Sie die Affinität Schlüssel versuchen zu entfernen und überprüfen, ob die Daten aller Knoten zu gleichen Teilen unter verteilt werden?
  2. Überprüfen Sie, ob alle Ignite-Server Teil desselben Ignite-Clusters sind und ihnen alle denselben Heap-Speicher zugewiesen haben. Einer der Gründe dafür ist, dass Server 0 und Server 2 möglicherweise nicht genügend Heapspeicher haben.

Auch wenn die Antwort Punkt 1 ja ist, dann denke ich, Sie müssten Ihre eigene Affinität Funktion implementieren

Verwandte Themen