Cassandra无分区键聚合查询告警但全表SELECT无告警疑问
Cassandra无分区键查询告警差异原因
核心差异:告警是专门针对聚合查询的风险提示,并非所有全表扫描都会触发
Aggregation query used without partition key告警的触发条件仅覆盖count(*)、sum、avg等聚合类查询:这类查询需要协调节点汇总所有分片的扫描结果后再做全局计算,会占用协调节点大量的内存和CPU资源,数据集稍大就可能直接导致协调节点OOM崩溃,对集群稳定性的危害极高,因此Cassandra特意为这类无分区键的聚合操作增加了强告警提示。- 不带分区键的
SELECT * FROM user属于普通全表扫描,默认无专门告警:这类查询的协调节点不需要做全局计算,只需要将各节点返回的结果流式透传给客户端,对协调节点的资源压力远低于聚合查询,因此Cassandra默认没有为这类查询配置触发告警,不代表这类查询没有性能风险,仅代表其稳定危害等级低于无分区键的聚合查询。
补充说明:不管有没有触发告警,无分区键的全表扫描都属于生产环境不推荐的操作,数据量较大时会占用集群大量内网带宽,拖慢正常业务请求的响应速度。
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

