Cassandra删除后删除行键

时间:2014-09-05 07:30:44

标签: cassandra-2.0

我们的生产中有一个5节点的cassandra集群。全部运行Cassandra 2.0.6。 群集将用户交互存储在列族中的页面中。数据模型看起来像

Row Key:
20140101:http://example.com/myurlpath?myquery=1

Columns:
Counters
X:Y:Type => Counter Value

因为它是一种数据点流。我们有一个单独的cron,可以主动删除超过n周的行[删除所有列]。虽然我们的删除cron清空了较旧的行。行键仍然保留在我们的系统中[例如:仍然有一个时间戳为20130517的rowkey]。

我检查过帖子herehere cassandra forum答案中没有明确的解决方案。我理解分布式删除和墓碑。但是这个行键问题仍然是我的神话。

我尝试强制进行重大压缩和清理没有改变任何事情。由于我们的cassandra集群使用的内存不断增加,因为我们的行密钥大小很高[平均120B]。

我们让列系列的gc_grace设置保持默认的10天。如果问题至少我们不应该看到超过一年[非常频繁出现]的行密钥最多一个月或两个月就可以了。

我们应该如何管理cassandra中的行键删除?

3 个答案:

答案 0 :(得分:0)

使用Cassandra的NodeTool实用程序命令行界面来管理集群。

CLI:

1:CD C:\Program Files\DataStax Community\apache-cassandra\bin

2:nodetool -h localhost flush KeySpace Table

等2-3分钟。神奇的等待

nodetool -h localhost compact KeySpace Table

答案 1 :(得分:0)

我正在使用 nodetool 进行Cassandra服务器维护。这对我来说可以。为此,您需要使用flush,cleanup和repair实用程序。您必须编写shell脚本并使用cronjob执行脚本。

#!/usr/bin/env bash
. /etc/rc.d/init.d/functions
nodetool flush [keyspace] [cfnames]
nodetool invalidatekeycache [keyspace] [cfnames]
nodetool invalidaterowcache [keyspace] [cfnames]
nodetool scrub [keyspace] [cfnames]
nodetool repair [keyspace] [cfnames]
nodetool cleanup [keyspace] [cfnames]
nodetool compact [keyspace] [cfnames]

参考链接为:NodeTool

答案 2 :(得分:0)

http://www.slideshare.net/planetcassandra/8-axel-liljencrantz-23204252

正如上面的演示文稿所说,如果cassandra存在于多个sstables中,它将不会删除行键。虽然压缩过程存在同样的目的,但总有可能发生这种情况[来自幻灯片35]。

相关问题