【问题标题】:Cassandra have slow(rpc timeout) read request with long IN operatorCassandra 具有长 IN 运算符的慢速(rpc 超时)读取请求
【发布时间】:2013-08-12 12:47:31
【问题描述】:

我有下一个表结构:

SELECT * FROM v WHERE uid = 0x5103be34e695ba3c31000000;

 uid                        | cid       | v
----------------------------+-----------+-------
 0x5103be34e695ba3c31000000 | 02j1Dy9G1 |  True
 0x5103be34e695ba3c31000000 | 03szNx7G1 | False
 0x5103be34e695ba3c31000000 | 0SREjO9G1 |  True
 0x5103be34e695ba3c31000000 | 0bQ4Qn9G1 |  True
 0x5103be34e695ba3c31000000 | 0ojEVLWF1 |  True
 0x5103be34e695ba3c31000000 | 1NiWfO9G1 |  True
 0x5103be34e695ba3c31000000 | 1fSmhWGF1 |  True
 0x5103be34e695ba3c31000000 | 1o0Ri3TF1 |  True

用户 (uid) 喜欢 (True) 或不喜欢 (False) 内容 (cid)

“用户喜欢内容吗?”

SELECT * FROM v WHERE uid = 0x5103be34e695ba3c31000000 AND cid IN ('Rqy9V79J',....more than 2000 cids...);

rpc timeout

Normal SELECT * FROM v WHERE uid = 0x5103be34e695ba3c31000000 works very fast.

如何使用 IN 加快读取请求?其他数据结构? 有任何想法吗?

【问题讨论】:

  • 你能发布你的完整架构(创建表语句),包括任何索引吗?
  • 您的集群中有多少个实例?如果您有多个,请将一致性设置为 local_quorum 并查看是否有相同的问题。

标签: nosql cassandra bigdata cql high-load


【解决方案1】:

带有很多参数的IN-operator需要更多的内存给每个线程。

要修复它,请尝试设置 JVM_OPTS="$JVM_OPTS -Xss512k"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2017-02-06
    • 2013-02-20
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多