2015-10-13 8 views
5

キースペースとテーブル(columnfamily)を作成しました。 のはcolumnfamily cfで千数百行を入力した後ディスクスペースは、cassandra dbと圧縮からkeyspaceを削除しても解放されません。

"ks.cf"を言ってみましょう、私はdf -hを使用して、ディスクの使用状況を見ました。

次に、からDROP KEYSPACE ksというコマンドを使用してキースペースを削除しました。

また、落とした後のディスク使用量はremains the sameです。私もnodetool compactでしたが、運はありません。

データ/行の削除後にディスク使用量が解放されるように、これらの設定を手伝ってくれる人は誰ですか?

答えて

2

行を削除しようとしているだけの場合は、削除手順で通常の削除サイクル(delete_row-> tombstone_creation-> compaction_actually_deletes_the_row)を実行する必要があります。

あなたのキースペースを完全に取り除きたい場合は、cassandraデータフォルダ(yamlファイルで指定する必要があります)を確認してください。私の場合、それは "/ mnt/cassandra/data /"です。このフォルダには、各キースペース(すなわちks)のサブフォルダがあります。キースペースに関連するフォルダを完全に削除することができます。

フォルダを保持したい場合は、削除する前にcassandraがキースペースのスナップショットを作成することがわかります。基本的にすべてのデータのバックアップ。あなたは 'ks'フォルダに入り、スナップショットのサブディレクトリを見つけることができます。 snapshotsサブディレクトリに移動し、キースペースドロップに関連するスナップショットを削除します。

+0

うわー!!それは手動で削除できるスナップショットを維持します。しかし、私はdf -hを使って同じディスクスペースを見ていますが、データを再びcassandraにプッシュすると成長しません。たぶん、OSやCassandraは私が知らない何らかのキャッシュやディスクスペース管理をしているかもしれません。 –

+0

すべてのcassandraの書き込みでは、データが最初にメモリに保持されることを覚えておいてください。これは、cassandraがSStableの形でディスクにフラッシュする時点であると判断するまでです。 'nodetool flush 'でディスクに手動でフラッシュできます。 – Aki

+0

ああ大丈夫です!フラッシュするタイミングを決めるいくつかのコンフィギュレーションパラメータがなければなりません。それらのコンフィギュレーションパラメータは何ですか?カッサンドラの公式文書でそれを見つけることができますか? –

5

最近この問題に遭遇しました。テーブルを削除した後、スナップショットが作成されます。このスナップショットは、これが意図されていない場合には、これをロールバックすることができます。あなたはしかし、そのハードドライブのスペースをバックたくない場合は、実行する必要があります。適切なノード上の

nodetool -h localhost -p 7199 clearsnapshot

。さらに、cassandra.ymlのauto_snapshot: falseでスナップショットをオフにすることができます。

編集:スペル/文法

+0

私は同じ方法を使いましたが、それでもclearsnapshotの後に空のディレクトリが残っています。私はそれらを削除するのが安全だと思う。誰でも? – gubble

+1

@gubbleええ、私はOCDのために手作業で取り除いてしまいました。同様の名前のテーブルがある場合は、ハッシュを整列させてください。 – Highstead

関連する問題