2016-05-16 6 views
1

普通のINSERTステートメントを使用して、行が頻繁に上書きされるテーブルがあります。この表は〜50GBのデータを保持し、その大部分は毎日上書きされます。上書きされたデータのディスク領域を解放しますか?

ただし、OpsCenterによれば、ディスク使用率は上昇し続け、解放されません。

私は、行が上書きされており、単純に表に追加されているのではないことを検証しました。しかし、彼らは明らかにディスク上のスペースを占めているようです。

ディスク容量を解放するにはどうすればよいですか?

+0

コンパクション戦略とは何ですか?また、表と挿入文の例を表示できますか? –

+0

"このテーブルは〜50GBのデータを保持し、その大部分は毎日上書きされます。 - ええ、カサンドラの最高のユースケースではありません。 – Aaron

答えて

3

これらの書き込み中のカサンドラの方法では、新しい行が新しいタイムスタンプでSSTableに追加されるということです。読み込みを実行すると、最新の行(タイムスタンプに基づく)が行として返されます。ただしこれは、これを達成するために2倍のディスク容量を使用していることを意味します。 Cassandraが圧縮操作を実行して古い行が削除され、ディスク領域が回復されるまではありません。ここでは、プロセスを説明カサンドラは、ディスクへの書き込み方法についていくつかの情報は次のとおりです。

http://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_write_path_c.html?scroll=concept_ds_wt3_32w_zj__dml-compaction

圧縮がノードごとに行われ、中にクラスタのパフォーマンスに影響を与えることが非常にディスク集約的な操作でありますそれが実行されている時間。アーロンは、毎日あなたのクラスタ内のすべてのデータを上書きする上記の彼のコメントで述べたように

https://docs.datastax.com/en/cassandra/2.0/cassandra/tools/toolsCompact.html

が本当にカサンドラのための理由のような問題の最善のユースケースではありません:あなたはnodetool compactコマンドを使用して手動で圧縮を実行することができますこれです。

+0

リンクをありがとう - コンパクションを理解し、チューニングを少し助けてくれました! – mikestaszel

関連する問題