Cassandra で一連のベンチマークを実行しています。とりわけ、次の構成を試しました: 1 つのクライアント ノード、3 つのサーバー ノード (同じリング)。すべての実験は、サーバーをクリーンアップした後に実行されます。
pkill -9 java; sleep 2; rm -r /var/lib/cassandra/*; ./apache-cassandra-1.2.2/bin/cassandra -f
次にcassandra-stress
、クライアント ノードから実行します ( 3 レプリカ、整合性 ANY/ALL):
[stop/clean/start servers]
./tools/bin/cassandra-stress -o INSERT -d server1,server2,server3 -l 3 -e ANY
[224 seconds]
[stop/clean/start servers]
./tools/bin/cassandra-stress -o INSERT -d server1,server2,server3 -l 3 -e ALL
[368 seconds]
一貫性レベルを下げると、パフォーマンスが向上すると推測できます。ただし、これが発生する理由はありません。ボトルネックはサーバーの CPU であり、最終的にはすべてローカル書き込みを行う必要があります。実際、サーバー ログを注意深く読むと、ほのめかされたハンドオフが行われたことがわかります。実験を繰り返していると、クライアントで UnavailableException が発生し、サーバーで「MUTATION メッセージがドロップされました」というメッセージが表示されることがあります。
この問題は文書化されていますか? CL != ALL は書き込み時に有害と見なされるべきですか?