私はCassandra java driver
を使用します。カッサンドラバッチクエリとシングル挿入パフォーマンス
1秒間に150kリクエストを受信します。これは、パーティションキーが異なる8つのテーブルに挿入されます。
- バッチが1ずつ挿入し、これらの表
- に挿入:
私の質問は、より良い方法であるです。
私の要求サイズ(150k)を考慮すると、バッチはより良いオプションのように聞こえるが、すべてのテーブルに異なるパーティションキーがあるので、バッチは高価に見える。
私はCassandra java driver
を使用します。カッサンドラバッチクエリとシングル挿入パフォーマンス
1秒間に150kリクエストを受信します。これは、パーティションキーが異なる8つのテーブルに挿入されます。
私の質問は、より良い方法であるです。
私の要求サイズ(150k)を考慮すると、バッチはより良いオプションのように聞こえるが、すべてのテーブルに異なるパーティションキーがあるので、バッチは高価に見える。
リンクの下から私の答えを確認してください:
Cassandra batch query performance on tables having different partition keys
バッチは、パフォーマンスを向上させるためではありません。それらは、原子性と分離を保証するために使用されます。
バッチ処理は、単一パーティション書き込み操作に有効です。しかし、パフォーマンスを最適化するためにバッチを誤って使用することがよくあります。バッチ操作によっては、実際に性能が低下することがあります。その後、
https://docs.datastax.com/en/cql/3.3/cql/cql_using/useBatch.html
データの一貫性は、これらのテーブル間で必要とされていない場合は、単一のインサートを使用します。 ノード間で単一の要求が適切に分散または伝播されます(負荷分散ポリシーに依存)。要求の処理とバッチの使用について心配しているならば、バッチは効率的ではないコーディネーターノードに余分な負荷をかけます。