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

use*_*127 1 java cloud jvm cassandra 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是否有任何优点/缺点.

Cal*_*ffe 5

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

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