2016-04-13 15 views
0

私はHazelcastで単純なベンチマークを行い、分散データグリッドのニーズに合っているかどうかを確認しています。アイデアは、> n/2の複製(例えば3)を持つ奇数のサーバ(例えば5)を持つことです。すべてのサーバーと私のローカルマシン(なしネットワーク待ち時間)私は次のような結果を得る上で実行しているクライアントでHazelcast非同期書き込みは推移的ですか?

は:予想通り

5 x H/C server (sync backup = 2, async backup = 0); 100 Client Threads : 35,196 puts/second 

5 x H/C server (sync backup = 1, async backup = 1); 100 Client Threads : 41,918 puts/second 

5 x H/C server (sync backup = 0, async backup = 2); 100 Client Threads : 52,007 puts/second 

、非同期バックアップは同期バックアップよりも高いスループットを可能にします。私たちのユースケースでは、レジリアンスとパフォーマンスの間で許容できるバランスを取るため、おそらく中間オプション(1xシンクと1x非同期)を選択します。

私はHazelcastが1x同期と1x非同期で構成されていて、同期バックアップが実行された後(サーバーがクライアントに「OK」を返し、クライアントスレッドが実行された後)、ノードがクラッシュするが、 (データが1つのレプリカにのみ存在し、2つ目のレプリカにはないため)、同期バックアップを受け取ったノードは、非同期バックアップのタスクを取得するか、クラスタ全体の再バランスと「欠落」データクラッシュしたノードからコピーから再配布されますか?後者の場合、クラスタが再調整されると、ノードがクラッシュしていないかどうかが分かるように、データのコピーが合計で3つあります。同期ノードは、別のノードがすでにそのコピーを受け取っていること

答えて

1

パーティションの所有者がすべてのバックアップを作成します。 つまり、第1のバックアップでは第2のバックアップ用の新しいバックアップ要求は作成されません。これはすべて所有者の責任です。

バックアップレプリカを保持しているメンバーが失効している場合、アンチエントロピーメカニズムが起動し、バックアップパーティションが所有者に一致するように更新されます。

メンバーがダウンすると、最終的に1st(= sync)バックアップが新しいパーティションの所有者に昇格します。構成された冗長性が確保されていることを確認することは、新しい所有者の責任です。新しいバックアップが作成され、2つのバックアップが構成されていることが確認されます。

関連する問題