代码之家  ›  专栏  ›  技术社区  ›  Tamil

Cassandra删除后删除行键

  •  0
  • Tamil  · 技术社区  · 10 年前

    我们的产品中有一个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]的行键。

    我检查了SO帖子 here here 而且 cassandra forum 答案中没有明确的答案。我了解分布式删除和墓碑。但这一行键问题对我来说仍然是一个神话。

    我试着进行了一次大规模的压缩和清理,但一切都没有改变。由于我们的cassandra集群使用的内存不断增加,因为我们的行键大小很高[平均120B]。

    我们让列族的gc_grace设置保持默认值10天。如果这是一个问题,至少我们不应该看到超过一年的行键(经常出现),最多一两个月就可以了。

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

    3 回复  |  直到 7 年前
        1
  •  0
  •   ʰᵈˑ    10 年前

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

    气候变化:

    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

        2
  •  0
  •   Rajesh Ujade Rob Church    10 年前

    我正在使用 节点工具 用于我的Cassandra服务器维护。这对我来说很好。为此,你需要使用冲洗、清理和修复工具。您必须编写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

        3
  •  0
  •   Tamil    9 年前

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

    正如上面的演示所说,如果行键存在于多个sstable中,cassandra不会删除它。尽管压实过程的目的相同,但始终有可能不会发生这种情况[幻灯片35]。