Ich habe ein Ignite Datengrid von fünf Servern (sagen wir A, B, C, D und E). Ein partitionierter Cache wurde auf diese fünf Server verteilt, wobei die Anzahl der Backups auf 1 festgelegt wurde.Caching-Einträge auf bestimmten Ignite Server setzen
Ich möchte 100 Millionen Einträge in diesem partitionierten Cache speichern. Aber ich möchte die Partitionierung meiner Cache-Einträge auf die Ignite-Server steuern.
Ist es möglich, dass ich meinen Ignite-Client anweisen kann, einen Cache-Eintrag auf einen bestimmten Server zu stellen (zB E)?
Ich versuche tatsächlich, Apache Ignite zu verwenden, um einen Bloom-Filter zu erstellen, für den ich ein verteiltes Array von 100 Milliarden Bits benötige. Da Ignite eine verteilte Array-Datenstruktur nicht unterstützt, versuche ich, das Array in kleine Bit-Sets aufzuteilen und sie als Cache-Einträge zu speichern. Ich wollte die Distribution steuern, da sie mir bei der Entscheidung, welcher Server einen bestimmten Cache-Eintrag hat, geholfen hätte und meine Rechenjobs (mit dem Ignite Compute-Raster) an diesen bestimmten Server weitergeleitet hätte. Gibt es eine Möglichkeit, die Knoten-UUID eines Servers mit einem bestimmten Schlüssel zu erhalten? –
Ich habe gerade festgestellt, dass es möglich ist, die Partition, auf der ein bestimmter Schlüssel vorhanden ist, mit der Funktion CacheConfiguration() zu erhalten. GetAffinityFunction() .partition (Objektschlüssel). Können Sie mir jetzt sagen, dass es möglich ist, die UUID des Ignite-Servers mit dieser Partition zu finden? –
Dies sollte durch 'Affinity' API erfolgen, die über' Ignite.affinity() 'Methode erworben werden kann. Um jedoch einen zusammengeschlossenen Abschluss zu senden, können Sie einfach die Methoden 'IgniteCompute.affinityRun() 'und' IgniteCompute.affinityCall() 'verwenden. –