はじめに:
私は Cassandra 1.2.4 クラスターを使用する Python アプリケーションをレプリケーション ファクター 3 で使用しています。すべての読み取りと書き込みは整合性レベル 2 で行われます。クラスターにアクセスするには、CQL ライブラリを使用します。Cassandra クラスターは、rackspace の仮想サーバー上で実行されています。
問題:
ときどき、ノードの 1 つが通常より遅くなることがあります。この場合、この状況を検出して、遅いノードへのリクエストを防止し、可能であればそのノードの使用を完全に停止できるようにしたいと考えています (これは理論的には可能なはずなので、 RF は 3 で、CL は 1 つの要求ごとに 2 です)。これまでのところ、私が思いついた解決策には、各ノードへのリクエストのタイミングを計り、遅いノードへの将来の接続を防ぐことが含まれます。しかし、これですべての問題が解決するわけではありません。別のノードに接続しても、コーディネーター ノードがクエリをルーティングした後、特定のクエリが遅いノードによって処理される可能性があるためです。
質問:
Python アプリケーションから遅いノードを検出する最良の方法は何ですか? このシナリオで、人間の介入なしに Python から Cassandra ノードの 1 つの使用を停止する方法はありますか?
前もって感謝します!