分区大小如何影响Cassandra的读/写性能?

时间:2018-04-24 09:23:47

标签: performance cassandra partitioning cassandra-3.0

我可以将我的表分区为少量较大的分区或几个较小的分区,但在我的用例中,大分区的大小仍然很小,永远不会超过100MB。将有数百万用户从此表中读取,因此当有这么多用户从单个分区读取时是否存在拥塞风险?

我可以想象在几个物理节点之间拆分读取查询比从单个物理节点读取更快,但是在几个虚拟节点之间拆分读取查询是否会以相同的方式提高性能?大分区的数量将超过物理节点的数量,因此通过具有较小分区的虚拟节点进一步传播数据会提高读取性能吗?更新计数器表的分区的答案是否有所不同?

所以基本上,我需要知道的是,如果数百万用户从同一个分区读取(大小超过100MB)会引入拥塞。这是我的项目真正重要的答案。但我也想知道是否进一步传播数据(常规表和计数表),超过物理节点数量通过较小的分区将增加读/写性能。

任何参考链接都将非常受欢迎,因为我将撰写报告,并且始终首选引用文章,期刊或文档。

1 个答案:

答案 0 :(得分:0)

在我看来,访问相同的分区(我们实际上是在讨论cassandra 3.0中的“行”)不是问题。如果群集上的负载增加,那么您只需要添加更多节点,这就是没有单点故障原则。群集中的每个节点都能够满足用户请求(取决于您的复制因子和读取一致性)。

此外,如果您知道将要访问的分区密钥很多,那么您可以使用表的密钥和行缓存功能,您将避免任何磁盘访问