Cassandra 读取延迟在写入时增加

Cassandra read latency increases while writing

我有一个 cassandra 集群,它的读取延迟在写入期间增加。写入主要通过夜间的 spark 作业进行。写入发生在巨大的突发中,有没有办法减少写入期间的读取延迟。使用 LOCAL_QUORUM 进行写入,使用 LOCAL_ONE 进行读取。有没有办法减少写入时的读取延迟?

Cassandra 集群配置

10节点cassandra集群(DC1中5个,DC2中5个)

CPU: 8 核

内存:32GB

Grafana 指标

我可以给点建议:

  1. 使用LCS压缩策略。

  2. 首选 round-robin 读取负载平衡策略。

  3. 明智地选择partition_key,这样请求就不会在单个分区上被轰炸。

Partition size also play a good role. Cassandra recommends to have smaller partition size. However, I have tested with Partitions of 10000 rows each with each row having size of 800 bytes. It worked better than with 3000 rows(or even 1 row). Very tiny partitions tend to increase CPU usage when data stored is large in terms of row count. However, very large partitions should be avoided even.

  1. 复制因子 应该有策略地选择。应考虑所有键空间的复制来决定写入一致性级别。