2016-12-07 4 views
0

1つのレプリカで作成された書き込みが他の地理的に分散されたレプリカに伝搬するのにかかる時間を測定したいと思います。カッサンドラはこれを測定するためのメカニズムを提供していますか?カサンドラのレプリカが書き込みを受け取ったときに注意してください

PS。基本的なGoogleの検索では、(実際には全く関係のない)簡単な結果は返ってこなかったので、これをやっているのは簡単ではないと思います。他のツールを含む他の提案も歓迎されます。

+0

おそらく、あなたはカッサンドラ活動の一部を記録することでそれを行うことができます。設定ディレクトリにある 'logback.xml'でこれを行うことができます。 –

答えて

2

ただ1回限り、クエリでトレースを有効にしてCL.ALLクエリを実行すると、トレースデータに各レプリカに到達するタイムスタンプが設定されます。しかし、あなたは本当にすべてのクエリのためにそれを行うことはできません。

より一般的な意味を理解するために、CASSANDRA-11569を使用すると、コーディネータの突然変異がレプリカ(または少なくとも他のDC)に到達するまでの時間です。これは、必ずしも、プロキシ書き込みのために他のDC内のノードのクォーラムがどのくらいの間、突然変異を取得するのかを示すものではありません。

ノードのタイムドリフトは本当に困難にすることができます。

ローカルクォーラムを実行して各クォーラムの要求と比較を行っている人もいます。 LQを実行してEQを書き込む際の問題は、リモートDCに行くときに、CassandraがそのDC内のすべての書き込みを単一のプロキシ書き込み(実際に各ノードに送信する対コーディネーター)でピギーバックすることです。そのノードがGCにヒットした場合、スパイクが発生する可能性があります。現代のクラスタでも、投機的な再試行があります。これは、レイテンシへの最初の書き込みの時間を追加します。

関連する問題