当我们说cassandra可扩展时意味着什么?

时间:2014-08-16 04:52:50

标签: cassandra

我创建了两个节点Cassandra集群并尝试执行负载测试。我发现一个节点或两个节点在吞吐量上没有太大差别我认为如果1个节点可以为我提供2000 tps的插入两个节点应该加倍。它是那样的吗? 如果不是那么实际Scaling意味着什么,我怎么能与延迟或吞吐量相关联。

3 个答案:

答案 0 :(得分:1)

Cassandra可扩展。只是你的情况有点简化,因为两个节点实际上并不是高可扩展性的情况。您应该知道或Cassandra使用的令牌分区算法。一旦你明白了,就不应该有任何问题。有很多关于此的演讲。例如。这一个:http://www.datastax.com/resources/tutorials/partitioning-and-replication

如果是复制因子1,一切都很简单: 您从/向Cassandra保存/读取的每个键值对都是对群集中某个Cassandra节点的查询。数据在节点之间均匀分布(请参阅分区算法的详细信息)。所以你总是在所有节点之间均匀分配总负载 - >更多节点,你可以携带更多的负载(并且它是线性的)。在这种情况下,系统当然应该以正确的方式配置,以避免不同类型的网络瓶颈。

如果复制因子超过1,情况会有点复杂,但原理是相同的。

答案 1 :(得分:0)

有很多因素会导致这种结果。

A)检查您的复制因子。虽然不可取,但在您的情况下,您可以将其设置为1

B)查看主键中的分片。如果您在测试中没有更改它,那么您正在加载倾斜的数据,并且该表未扩展到2个节点。

答案 2 :(得分:0)

  

当我们说Casssandra可扩展时意味着什么?

基本上有两种扩展数据库的方法。

  • 垂直扩展:增加群集中现有节点的资源(更多RAM,更快的HDD,更多内核)。
  • 水平扩展:向群集添加其他节点。

垂直缩放往往更像是一种“创可贴”#34;或临时解决方案,因为它有非常有限的限制。你的机器只支持如此多的RAM或许多内核,一旦你最大限度地发挥出来,你真的无处可去。

Cassandra是可扩展的"因为它简化了水平缩放。如果您发现现有节点正在最大限度地利用其可用资源,则只需添加其他节点,调整复制因子并运行nodetool repair即可。如果您不得不与其他数据库产品一起使用,您将会欣赏Cassandra如何(相对)轻松实现这一目标。

在您的情况下,如果没有(很多)更多细节,很难知道到底发生了什么。但是如果您的第一个节点正在充分处理您的负载测试,那么我可以看到为什么您不会通过添加另一个节点来发现差异。

如果您还没有,请查看Cassandra Stress Tool

此外,请务必根据本文检查您当前的方法,该文章的标题为:How not to benchmark Cassandra