【问题标题】:How to control High read latency in Cassandra?如何控制 Cassandra 中的高读取延迟?
【发布时间】:2014-10-08 02:03:05
【问题描述】:

我已经设置了一个带有 3 个节点的 Cassandra。在客户端我使用 Datasatx java 驱动程序,我的查询就像

Select Abc from Cassandra where key =a and cluster_column<=10 limit 1;

正如我们在上面的查询中看到的,我希望拥有小于 10 的最大“cluster_column”。 我有很宽的行。因此,当数据跨行增长时,读取延迟会增加。

我只使用 key cache 和 level-compaction 策略。 MemTable 的大小保持为 2048 MB。

我可以调整哪些参数来降低服务器级别的读取延迟。

请回复

提前致谢

【问题讨论】:

标签: cassandra


【解决方案1】:

在 Cassandra 中,在匹配分区键时,获取整行,然后应用后续过滤器。 Cassandra 中的单行可以是多行您在 CQL 表中看到的,具体取决于您的(复合)主键。

在您的情况下,如果您经常对一小部分列执行选择查询,则可以使用以下解决方案之一:

  1. 更改您的分区键以拥有多于一列。这会让你的行变得更瘦。

    确保将查询中始终使用的列添加到复合主键。并仔细选择您的主键列,因为分区键仅支持 equals 和 in 条件。

  2. 使用列子集创建另一个表您的查询经常。这将减少每个 Cassandra 行的大小,从而改善您的延迟。

我建议您阅读this blog post 以更好地了解Cassandra 中的宽行,并阅读this post 以了解Where 子句的限制

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 2018-06-04
    • 1970-01-01
    • 2018-01-04
    • 2018-04-15
    • 2017-03-29
    • 1970-01-01
    • 2019-04-21
    • 2022-07-05
    相关资源
    最近更新 更多