【问题标题】:Faster way of counting total number of columns in a cassandra row with hector用赫克托计算 cassandra 行中总列数的更快方法
【发布时间】:2012-02-01 14:45:21
【问题描述】:

我想使用 Hector 客户端计算 Cassandra 行的总列数。目前我正在使用CountQuery 执行此操作,但对我来说似乎真的很慢。同样对于一行,只有 60k 列它需要将近 2 秒。我的代码目前如下所示:

QueryResult<Integer> qr = HFactory.createCountQuery(ksp, se, se).
    setColumnFamily("ColumnFamily1").
    setKey("RowKey").
    setRange(null, null, 1000000000).execute();

PS:我必须将范围设置为如此高的数字,否则它只会算我最大。到我在范围内提供的数字。

有什么想法可以改进吗?

【问题讨论】:

    标签: java performance cassandra counting hector


    【解决方案1】:

    Cassandra 中的列计数本来就很慢。 Cassandra 必须遍历整行才能返回计数。

    您可能希望对计数进行非规范化。您可以使用每次插入时更新的计数器列。

    【讨论】:

    • 谢谢。我不知道它需要遍历整行。
    • 过去 4 年这种情况发生了变化吗?我的意思是现在 cassandra 是否保留了一些元数据,并且可以快速返回它仍然迭代所有列的列数?
    • 不,这没有改变。主要原因是跟踪该信息会减慢写入路径。
    猜你喜欢
    • 2013-05-01
    • 2013-03-17
    • 2012-05-02
    • 2013-07-10
    • 2011-12-19
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多