【问题标题】:Will Cassandra load balance automatically on heterogenous hardware node capabilities?Cassandra 会在异构硬件节点功能上自动进行负载平衡吗?
【发布时间】:2015-11-21 03:27:28
【问题描述】:

我计划从 MongoDB 迁移到 Cassandra,以获取大型金融时间序列数据。我计划用 3 台全新的 16GB i7s 和 500GB SSD 组成一个测试集群,但理想情况下,我还想添加两台旧电脑,但它们的速度大约是新电脑的 1/2(i5s 12GB RAM 和旋转磁盘)。我是否必须执行特殊的手动配置技巧才能让 Cassandra 加载具有更多行/工作的更快的机器?或者,如果它们的处理器和磁盘速度不同,是否真的像在集群中添加盒子一样简单而无需过多担心?我计划复制因子为 2。

Cassandra 基本上在负载平衡和分区时会自动考虑节点性能吗?我不想添加较旧的硬件并看到它会降低整个集群的性能。

我提出这个问题的主要动机是,如果我现在购买大量使用现代硬件的节点,那么在 24 个月内添加更新/更快的硬件会发生什么? (到那时)旧机器是否与其固有的速度劣势不成比例地阻止了它?我是否必须具有同质节点功能才能进行有效集群?

我的问题不仅适用于处理器速度,还适用于存储系统吞吐量和延迟。

【问题讨论】:

    标签: cassandra nosql


    【解决方案1】:

    它不会自动调整负载平衡以适应硬件差异。所以如果你使用默认配置,速度较慢的机器会对整体性能造成很大的拖累。

    但是,如果您将 vnode 与 murmur3partitioner 一起使用,那么理论上您可以通过将更少的 vnode 分配给较慢的硬件来补偿硬件差异。这具有将更少的分区映射到这些机器的效果,因此平均而言它们将被要求做更少的工作。

    我认为,如果硬件在能力上没有太大差异,则可以在一定程度上工作,但是您必须通过实验找出正确的 vnode 分配,因为性能可能会受到许多不同因素的影响,如CPU速度、内存速度、I/O等。

    我发现如果可能的话,使用匹配的硬件要容易得多,因为几年前的硬件性能明显比新硬件差。

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 2017-11-13
      • 2017-10-25
      • 2016-06-21
      • 1970-01-01
      • 2010-09-15
      • 2015-06-27
      • 2019-10-28
      • 1970-01-01
      相关资源
      最近更新 更多