私は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つあります。同期ノードは、別のノードがすでにそのコピーを受け取っていること