卡桑德拉何时触及阿姆达尔定律?

时间:2012-01-12 17:26:10

标签: cassandra

我试图理解Cassandra与节点数量线性扩展的说法。快速浏览'网络'我还没有看到很多关于这个主题的处理。当然,Cassandra中有一些串行处理元素必须限制N增加时的速度。关于这个主题的任何想法,指示或链接都将不胜感激。

编辑以提供观点:
我正在开发一个项目,该项目目前有一个1,000+节点Cassandra基础架构的请求。我没有提出这个规范。我发现自己提出将N减小到200到500之间的范围,每个节点的串行计算速度至少是其两倍。通过对服务器配置进行简单更改,可以轻松实现每个节点的成本损失。

1 个答案:

答案 0 :(得分:8)

Cassandra的缩放更好地用 Gustafson's law 来描述,而不是 Amdahl's law 。随着节点数量的增加,Gustafson缩放会查看您可以处理多少数据。也就是说,如果节点数是N倍,则可以在相同的时间内处理N倍大的数据集。

这是可能的,因为除了架构和环更改之外,Cassandra使用非常少的群集范围协调。大多数操作只涉及许多等于复制因子的节点,这些节点随着数据集的增长而保持不变 - 因此几乎是线性向外扩展。

相比之下,当节点数量增加时,Amdahl缩放会查看快多少您可以处理固定数据集。也就是说,如果节点数是N倍,那么您可以更快地处理相同数据集N次吗?

显然,在某些时候,您达到了一个限制,即添加更多节点不会使您的请求更快,因为服务请求所需的时间最短。卡桑德拉在这里不是线性的。

在你的情况下,听起来你问的是,拥有1000个慢节点还是200个快速节点是否更好。你的数据集有多大?这取决于您的工作负载,但通常的建议是节点的最佳大小各为1TB左右,确保您有足够的RAM和CPU匹配(请参阅cassandra node limitations)。 1000声音太多了,除非你有数PB的数据。