圧縮

圧縮は、とりわけワークロードの大部分が読み取りの場合、ディスク上のデータとディスクI/Oを削減することで、Cassandraノードのストレージ容量を最大にします。

圧縮は、とりわけワークロードの大部分が読み取りの場合、ディスク上のデータとディスクI/Oを削減することで、Cassandraノードのストレージ容量を最大にします。Cassandraは、SSTableインデックスの行の場所をすばやく検索し、対応する行を展開します。

従来のデータベースとは違い、Cassandraでは、書き込みパフォーマンスは圧縮によって悪い影響を受けません。従来のリレーショナル・データベースでは、書き込みは、ディスク上の既存のデータ・ファイルへの上書きが必要です。データベースが、ディスク上の対応するページを見つけて展開し、対応するデータで上書きし、最後に再圧縮する必要があります。リレーショナル・データベースでは、圧縮は、CPUサイクルとディスクI/Oの点で負荷の大きい操作です。CassandraのSSTableデータ・ファイルは不変な(ディスクにいったんフラッシュされると二度と書き込まれない)ため、書き込みを処理するために再圧縮のサイクルが必要ありません。SSTableは、ディスクに書き込まれるときに一度だけ圧縮されます。圧縮されたテーブルへの書き込みにより、最大10パーセントのパフォーマンス向上が見込めます。

また、Cassandra 2.2以降では、コミット・ログも圧縮できるため、書き込みパフォーマンスを6〜12%向上させることができます。詳細については、「Cassandra 2.2におけるコミット・ログの更新」を参照してください。