3

     Cassandra では、非常に多くのバージョンの列が異なる SSTable に分散している場合、クエリの取得を高速化するために圧縮が非常に必要です。圧縮は、同じ列の一連の更新または削除が行われる場合の最適な戦略です。ただし、圧縮はリソースを大量に使用するプロセスです。しかし、私のアプリケーションでは、レコードを挿入して表示するために Cassandra のみを使用しています。しかし、鍵スペースのサイズは GB 単位で大きくなる可能性があります。そして、数百万を超えるレコードを保持することになります。ここでは、挿入のみが重要です。列を更新したり、列を削除したりするつもりはありません。私の単純な削除は、キースペース全体になります。今、私の疑問は圧縮を無効にできますか? 圧縮を無効にすると、クエリのパフォーマンスが低下しますか?..

4

1 に答える 1

5

1)データモデルによって異なります。

2) Cassandra の複雑な部分は読み取りパフォーマンスであり、圧縮によってパフォーマンスが向上します。

3) 同じ列を削除または更新しない場合でも、新しい列を同じ行に挿入する予定がある場合、圧縮を無効にすると、ディスク シークの数が増えるため、読み取りパフォーマンスが確実に低下します。

4)それとは別に、圧縮はトゥームストーンコレクションの仕事をしますが、削除はキースペース全体の削除であるため、問題はありません。

5) 圧縮は、行フラグメントを一緒にマージし、期限切れの墓石を削除し、インデックスを再構築します。これらはいずれも必要ありません。したがって、理論的には、圧縮をオフにすることができます。しかし、ブルーム フィルターの誤検出が読み取りパフォーマンスに影響を与える場合、安定した大規模なデータがこれ以上ない場合があります。ここでブルーム フィルターを参照してください: Cassandra アーキテクチャの概要

于 2012-12-24T11:39:45.940 に答える