ユーザー・データ・サイズの計算

ユーザー・データ・サイズを算出する場合のストレージ・オーバーヘッドの説明

生データのサイズは、ストレージのオーバーヘッドのため、Cassandraに読み込まれたときに、大きくなることもあれば小さくなることもあります。どのくらいの差が生じるのかは、圧縮の程度と、データとテーブルの特性によって異なります。以下は、メモリーに格納されているデータではなくディスクに保持されるデータの計算です。

手順

  • カラムのオーバーヘッドの算出
    通常のカラムの合計サイズ = カラム名のサイズ + カラム値のサイズ + 15
    カウンター - 有効期限のあるカラムの合計サイズ = カラム名のサイズ + カラム値のサイズ + 23

    Cassandraの各カラムでは、15バイトのオーバーヘッドが発生します。テーブル内の各行のカラム名およびカラム数は異なるため、各カラムについてメタデータが格納されます。カウンター・カラムおよび有効期限のあるカラムの場合、8バイトを追加します(合計23バイト)。

  • 行オーバーヘッドを考慮します。
    Cassandraの各行では、23バイトのオーバーヘッドが発生します。
  • プライマリ・キーのインデックス・サイズを見積もります。
    プライマリ・キーのインデックス = 行数 * ( 32 + 平均キー・サイズ )

    各テーブルも、パーティション・インデックスを維持します。この見積もりはバイト単位です。

  • レプリケーションのオーバーヘッドの算出
    replication_overhead = total_data_size * ( replication_factor - 1 )

    レプリケーション係数は、使用されるディスクの容量に影響を与えます。レプリケーション係数1の場合、レプリカのオーバーヘッドはありません(クラスターにはデータのコピーが1つしか格納されないため)。レプリケーション係数が1を超える場合、要求されるデータ・ストレージの総量は、レプリケーション・オーバーヘッドを含みます。