我正在运行 Apache Cassandra 3.11.1,并且有 6 个表大小处于故障状态。
Max partition is larger than 100MB.
对于这 6 个表,分区大小平均在 200MB 到 5GB 以上。这 6 个表分布在 3 个键空间中,具体到Akka 持久性eventsByTag(即eventsByTag1,eventsByTag2)。
这些表中的大部分数据并未使用,但仍需要保持可用。
我正在考虑改变数据模型,但同时我试图更好地了解大分区大小的影响。
除了内存不足或命中Cassandra 的局限性如果大多数数据都无法访问,那么分区大小过大还会产生哪些其他负面影响?
一个可能相关(尚未确认)的具体案例是,我目前正在使用物化视图和 Elasticsearch 运行 Cassandra。有时,用于使用 Cassandra 数据更新 Elasticsearch 的预测会失败,我还不确定这是否相关。
在这种情况下我收到的错误消息是:
Caused by: com.datastax.driver.core.exceptions.ReadTimeoutException:
Cassandra timeout during read query at consistency LOCAL_QUORUM (2
responses were required but only 1 replica responded)
答案1
此版本的 Cassandra 应该比以前更好,尽管仍然存在由于访问许多 SSTable、仅在分区键上进行选择等而产生的性能问题。
本次演讲对支持“宽分区”所做的工作进行了很好的概述,尽管它仍然是重新建模数据的推荐方法。