Cassandra 表的分区大小超过 100MB 会产生什么副作用?

Cassandra 表的分区大小超过 100MB 会产生什么副作用?

我正在运行 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、仅在分区键上进行选择等而产生的性能问题。

本次演讲对支持“宽分区”所做的工作进行了很好的概述,尽管它仍然是重新建模数据的推荐方法。

相关内容