Cassandra vnode性能开销和更改vnode的数量

时间:2014-01-23 14:06:20

标签: cassandra

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

我们要测试的另一个场景是动态更改群集的num_tokens。是否可能,或者我们是否必须重新创建整个群集?如果可能,我们如何才能实现这一目标?

我们正在使用Cassandra 2.0.4。

1 个答案:

答案 0 :(得分:1)

这实际上取决于您的应用程序,但如果您在Cassandra上运行Spark查询,那么大量的vnode可能会使查询速度降低至少2倍或5倍。这是因为Spark无法跨vnode细分查询,并且每个vnode都会产生一个Spark分区,而大量分区会降低低延迟查询的速度。

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