即使从cassandra db和compaction中删除键空间后,磁盘空间也没有释放

Pan*_*yal 13 cassandra

我在其中创建了一个键空间和一个表(columnfamily).让我们说吧"ks.cf"

在列家族中输入几十万行后cf,我看到了使用的磁盘使用情况df -h.

然后,我使用命令DROP KEYSPACE ks从中删除了键空间cqlsh.

删除后,磁盘使用情况remains the same.我也做了nodetool compact,但没有运气.

任何人都可以帮我配置这些东西,以便在删除数据/行后释放磁盘使用量吗?

Hig*_*ead 12

最近遇到这个问题.删除表后,会生成快照.如果不是这样的话,此快照将允许您将其回滚.如果你确实想要那个硬盘空间,你需要运行:

nodetool -h localhost -p 7199 clearsnapshot

在适当的节点上.此外,您可以auto_snapshot: false在cassandra.yml中关闭快照.

编辑:拼写/语法


Aki*_*Aki 5

如果您只是尝试删除行,则需要让删除步骤经历通常的删除周期(delete_row-> tombstone_creation-> compaction_actually_deletes_the_row)。

现在,如果您完全想摆脱密钥空间,请检查cassandra数据文件夹(应在yaml文件中指定)。就我而言,它是“ / mnt / cassandra / data /”。在此文件夹中,每个键空间都有一个子文件夹(即ks)。您可以完全删除与密钥空间相关的文件夹。

如果您想保留该文件夹,那么最好知道cassandra在删除键空间之前会为其创建快照。基本上是所有数据的备份。您可以直接进入“ ks”文件夹,然后找到快照子目录。进入快照子目录并删除与您的键空间放置相关的快照。

  • 请记住,对于所有 cassandra 写入,数据首先保存在内存中,直到 cassandra 决定是时候以 SStable 的形式将其刷新到磁盘。您可以通过“nodetool flush <keyspace>”手动将其刷新到磁盘。 (2认同)
  • 是的-memtable_total_space_in_mb ...这是官方文档中的链接:http://docs.datastax.com/en/cassandra/2.0/cassandra/configuration/configCassandra_yaml_r.html?scroll=reference_ds_qfg_n1r_1k__memtable_total_space_in_mb (2认同)