如何从Cassandra的列族中回收存储

时间:2014-10-05 07:08:15

标签: cassandra

我在EC2中使用Datastax 2.1社区版。我在一个密钥空间中删除了一个大表(列族)并运行“nodetool compact”,但是从OpsCenter UI中,我看不到存储容量的任何增加。

我运行“nodetool compactionstats”来查看压缩是否正在进行但没有任何内容:     $ nodetool compactionstats     待定任务:0     主动压实剩余时间:不适用

我还需要遵循其他一些流程吗?

1 个答案:

答案 0 :(得分:3)

Cassandra在其默认配置中保留了每个被删除列族的快照。这是设计使您不会丢失cf的数据,如果您不小心删除了cf。

您可以在cassandra.yaml中禁用快照创建。从文档(参见:http://www.datastax.com/documentation/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html):

  

auto_snapshot   (默认值:true)启用或禁用快照是否为   在键空间截断或删除表之前获取数据。至   防止数据丢失,强烈建议使用默认设置。如果   如果设置为false,则会丢失截断或丢弃的数据。

如果您不禁用自动快照,则可以通过nodetool clearsnapshot删除生成的快照。请参阅:http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsClearSnapShot.html