【问题标题】:Cassandra vnodes performance overhead and changing the number of vnodesCassandra vnodes 性能开销和更改 vnodes 的数量
【发布时间】:2016-02-16 01:10:10
【问题描述】:

我们有一个包含 4 个节点的测试集群,并且我们已经开启了 vnode。读取似乎比旧方法(initial_token)慢一些。使用 vnode 是否有一些性能开销?如果我们只有 4 个物理节点,我们是否必须增加/减少默认的 num_tokens (256)?

我们想要测试的另一个场景是动态更改集群的 num_tokens。有可能吗,还是我们必须重新创建整个集群?如果可能,我们怎样才能做到这一点?

我们正在使用 Cassandra 2.0.4。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    这确实取决于您的应用程序,但如果您在 Cassandra 之上运行 Spark 查询,那么大量 vnode 会显着减慢您的查询速度,至少会减慢 2 或 5 倍。这是因为 Spark 不能跨 vnode 细分查询,每个 vnode 会产生一个 Spark 分区,分区数过多会降低低延迟查询的速度。

    建议的 vnode 数量更像是 16 个。这可以让您将理论上的两个节点集群拆分为最多 32 个节点,这对于大多数人来说已经足够了。

    【讨论】:

    • Spark Cassandra 连接器实际上会将多个查询分组到同一个 Spark 分区中,只要它们共享副本即可。所以你最终会得到与没有 vnode 相同数量的 Spark 分区。
    猜你喜欢
    • 2013-06-09
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 2020-01-02
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多