
最近、Cassandra を理解し、使い始めました。
2 つの列ファミリを作成しました。CF1 の場合、書き込みはすべての列値を含む一意の行への挿入です。例: 挿入操作のシーケンスは次のようになります。
Key Col1 Col2 Col3
k1 c11 c12 c13
k2 c21 c22 c23
CF2 の場合、書き込みは行のタイムスタンプ付き列への挿入です。例: 挿入操作のシーケンスは次のようになります。
Key timeCol1 timeCol2
k1 ct11
k1 ct11 ct12
k2 ct21
k2 ct21 ct22
私はYCSBを使用しており、節約ベースのクライアント.batch_mutate()呼び出し。CF1 の場合、呼び出しを通じて行のすべての列値を送信します。CF2 の場合、行の新しい列値を送信します。
OpsCenterが「書き込みリクエスト」を1000件と報告するとします。オペレーションたとえば、レコード数が 10000 レコードの場合、/秒になります。
OpsCenter の観点から見ると、操作とは何を意味しますか? すべての列ファミリにわたる一意の行挿入を意味しますか? 行の各ミューテーションの数を意味しますか? OpsCenter はどのようにして一意の操作を識別しますか? アプリケーションの観点から見ると、操作は両方の列ファミリに対して異なる意味を持ちます。
誰か私を案内してくれませんか?
ありがとう、アルン
答え1
「書き込みリクエスト」および「読み取りリクエスト」メトリックは、外部クライアントからの操作の数を表すため、含まれるミューテーションの数に関係なく、単一の batch_mutate 呼び出しは 1 つのリクエストになります。
「CF: ローカル書き込み」および「CF: ローカル読み取り」メトリックは、通常はコーディネーター ノードからローカル ノードで受信された操作の数を表します。単一の挿入の場合、「CF: ローカル書き込み」の数は、そのキースペースの「書き込み要求」 x RF に等しくなります。batch_mutate 呼び出しの場合、バッチ内の各ミューテーションは、「CF: ローカル書き込み」レベルで個別にカウントされます。
これらの操作は行レベルでのみ実行され、関連するデータに基づいたインテリジェントな処理/マージは行われません。たとえば、同じ更新クエリを 2 回実行すると、2 つの操作が行われます。