Cassandra - 许多较小或较小的节点?

时间:2015-09-16 23:14:53

标签: java cassandra jvm cloud google-compute-engine

我将在Google云上托管我的Cassandra数据库。实例以线性方式定价意味着1cpu与2gb内存是1美元,2cpu与4gb是2美元,4cpu与8GB是4美元,依此类推。

我决定我的实例的大小,我不确定标准是什么?我正在考虑使用更少的更大的实例(8cpu,64gb),而不是更轻的,例如(2cpu,4 gb)。我的思考过程是有更多实例,每个节点将携带更少的整体数据,如果节点失败,这将产生较小的影响。同样,这些较小实例的操作系统将具有较少的开销,因为它将接受较少的连接。

这些是优点,但这里有一些我能想到的缺点: 1)每个实例的利用率较低 2)如此多的实例上的Cassandra + JVM开销会增加并且会产生大量开销。 3)我将使用与持久性SSD相对的本地SSD,这种SSD要贵得多,这意味着每个实例都需要自己的本地SSD,这会增加成本。

这些是我能想到的一些原因,在选择更小的实例与Cassandra数据库中更小的实例之间是否存在任何其他优点/缺点(通常甚至可能是节点)?是否有与选择Cassandra服务器大小相关的最佳实践?

PS:我添加了'Java'标签,因为Cassandra是使用JAVA构建的,并且在JVM上运行,并希望看看JVM是否有任何优点/缺点。

1 个答案:

答案 0 :(得分:5)

我认为你已经达到了一些权衡点,但这里有一些其他的东西:

  1. 随着存储在单个节点上的数据量的增加,引导(添加新节点)的成本也会增加。例如,您将获得每个节点存储100 GB的合理自举时间,但该过程将每个节点需要10 TB。
  2. SSD的使用使得这一点变得不那么重要了,但考虑为您的提交日志和数据使用单独的物理磁盘。
  3. 通常不建议使用少于4个内核或少于8 GB内存的配置,但您的里程可能会有所不同。