flo*_*pot 11 timeout cql cassandra
我SimpleTopologyStrategy和我的戒指有5个节点replication_factor=3.我使用压力工具插入了1M行.当我尝试使用cqlsh读取行计数时
SELECT count(*) FROM Keyspace1.Standard1 limit 1000000;
Run Code Online (Sandbox Code Playgroud)
它失败并出现错误:
请求未在rpc_timeout内完成.
它获取限制为100000.即使500000也失败.
我的所有节点都已启动.我需要增加rpc_timeout吗?
请帮忙.
Pel*_*lle 13
您收到此错误,因为请求在服务器端超时.人们应该知道,正如其他人所指出的那样,这在卡桑德拉是一项非常昂贵的行动.
不过,如果你真的想这样做,你应该更新你的/etc/cassandra/cassandra.yaml文件并更改range_request_timeout_in_ms参数.这对所有范围查询都有效.
设置40秒超时的示例:
range_request_timeout_in_ms: 40000
Run Code Online (Sandbox Code Playgroud)
您可能还需要在客户端进行调整.当cqlsh用作客户端时,这可以通过创建/更新cqlsh的配置文件来完成~/.cassandra/cqlshrc,并将client_timeout参数添加到该connection部分.
设置40秒超时的示例:
[connection]
client_timeout=40
Run Code Online (Sandbox Code Playgroud)
读取1M行需要很长时间,这可能是它超时的原因.你不应该使用像这样的计数,它非常昂贵,因为它必须读取所有数据.如果您需要计算大量物品,请使用Cassandra计数器.
您还应该检查您的Cassandra日志以确认没有任何其他问题 - 有时Cassandra中的例外会导致客户端超时.
| 归档时间: |
|
| 查看次数: |
14744 次 |
| 最近记录: |