2012-01-11 10 views
3

計算グリッドとしてInfinispanを使用したいと考えています。 Distributed Execution Framework in Infinispan 5.0の文書が見つかりました。infinispan計算グリッドでノードを専用化する方法

私たちがやりたいことは、特定のタスクを実行する専用ノードとしてキャッシュの一部のノードを専用にすることです。これらのノードには必要なハードウェアがあるためです。

私の考えは、HardwareDriverKeyをHardwareDriverに分散キャッシュマッピングを作成し、 DistributedExecutorService.submit(task、hardwareDriverKey)を使用してタスクを実行することでした。 これを行うには、hardwareDriverKeyが実際のハードウェアを含む分散キャッシュの特定のノードに常に配置されるようにする方法を見つけ出す必要があります。

hardwareDriverKeyからノードアドレスを抽出できるカスタムConsistentHashを記述する必要がありますか?これについての例がありますか?それとも別の方法がありますか?

ありがとうございます。 Geert。

答えて

2

これは、基本的にはオブジェクトのグループを同じノードに置くよう強制しますが、どのノードであるかを制御することはできません。場所を特定の住所に強制するには、KeyAffinityServiceを使用します。トポロジが変更された場合、オブジェクトが移動する可能性があることに注意してください。

+0

ありがとう、それは私が探していたものです。トポロジの変更について:KeyAffinityServiceによって生成されたキーを持つエントリをいつ移動できますか?自ノードが停止または起動した場合のみ – greyfairer

+0

いいえ、任意のノードが参加/出席するたびに移動することは可能です。一般的に言えば、あるノードがN個のメンバーのクラスタに参加すると、1/Nキーが新しい結合者に移動します。葉に似ています。 –

1

この問題を解決するためのグループ化APIがあります。あなたはそれについての詳細を読むことができますhere

+0

こんにちはマルクス、グループAPIを指摘してくれてありがとう。しかし、それはGroupオブジェクトに対するハッシングを防ぎます。特定のノードのアドレスにグループをバインドする方法がまだわかりません。 – greyfairer

関連する問題