現在のディスク使用量を減らそうとしています。そうすることで、私たちが保存する情報のほとんどは、大部分が複数のテーブルや行にまたがる同じ文字列からなるメタデータです。Cassandraはストリングを繰り返してストレージを最適化しますか?
文字列は整数よりも多くのスペースを占有する傾向があるため、ディスク使用量を減らすためにこれらの文字列を整数に置き換えることができると考えました。私たちはこれを行い、ディスク消費量にほとんど差がないことに気付きました。
メタデータ文字列のバラツキが大きい場合には、大きな違いがあることに気付きました。私。ストリングはさらに変化しました。
私はCassandra 2.1に繰り返し情報を格納する巧妙な手段を採用しているのではないかと疑問に思っています。私はこの問題について何も見つけることができませんでした。
ありがとうございました。
"圧縮アルゴリズムは、文字列列をクラスタリングキーとして使用することで大きな利益を得ます。" - そうですか? –
@ChrisLohfink私はコンプレッサのエキスパートではありませんが、いくつかの圧縮アルゴリズムは、既に放出されたパターンを見て*一致するものを見つけることによって動作し、通常は距離が限られています(例:LZファミリはIIRCで64kオフセットします)。いくつかのMoveToFrontおよび/またはデルタコーディングを適用してデータの順序を悪用します。両方の手法の考え方は、コンプレッサーが最も使用されるシンボルをより少ないバイトでコーディングできるようにすることです。これらの長い文字列で並べられたSSTableを持つIMHOは、ランダムに(例えばUUIDで注文した場合のように)。これはすべて、圧縮されている実際のデータに依存します... – xmas79