Cassandra VNodes是否交易业绩?

Cassandra VNodes是否交易业绩?,cassandra,datastax-enterprise,Cassandra,Datastax Enterprise,我在6节点集群上使用DataStax Cassandra 1.2.3,每个集群都有四核3GHz处理器和8GB RAM。最近,我开始使用该功能,首先将num_标记设置为256,然后设置为128。我观察到我正在使用的模式的性能[每秒写入请求数]下降。我通常有一个标准化的模式,混合了宽表和计数器列族 是否有人观察到使用VNode时性能下降?是否有任何已知的优化技术可以更好地利用VNode 对于给定的硬件配置/节点,是否存在可以导出的num_令牌的最佳值 此外,我看到集群几乎是平衡的,尽管我有一个同质集

我在6节点集群上使用DataStax Cassandra 1.2.3,每个集群都有四核3GHz处理器和8GB RAM。最近,我开始使用该功能,首先将num_标记设置为256,然后设置为128。我观察到我正在使用的模式的性能[每秒写入请求数]下降。我通常有一个标准化的模式,混合了宽表和计数器列族

  • 是否有人观察到使用VNode时性能下降?是否有任何已知的优化技术可以更好地利用VNode

  • 对于给定的硬件配置/节点,是否存在可以导出的num_令牌的最佳值

  • 此外,我看到集群几乎是平衡的,尽管我有一个同质集群,但一个节点自动承担了更高的负载份额。在使用VNodes之前,我会手动为Murmer3Partitioner平衡集群,并且性能良好

  • 谢谢, VS

    (这是我文章的修改版本:)

    选择每个节点的令牌数(我们称之为T和节点数N)256,可以为大多数集群大小的随机令牌分配提供良好的负载平衡。对于小T,在大多数情况下,随机选择初始标记会导致数据分布不均匀。T越大,分布越接近均匀,概率越大

    另外,对于小T,当添加一个新节点时,它将不会有很多范围要分割,所以将无法获取均匀的数据切片

    因此,T应该是大的。但如果它太大,则需要跟踪的切片太多,因此性能会受到影响。查找钥匙所在位置的功能变得更加昂贵,处理单个VNode的操作(如维修)变得缓慢。(一个极端的例子是SELECT*LIMIT 1,当没有数据时,必须依次扫描每个vnode以搜索一行。这是O(NT),即使是非常小的T也需要几秒钟才能完成。)


    因此,256被选为一个合理的平衡。我不认为大多数用户会觉得它太慢;拥有超大群集的用户可能需要增加它。

    性能差异是什么?很抱歉,性能下降是由于生成器端的问题造成的。事实上,整体业绩增长了7%左右。但是,如果有人知道为什么256被认为是num_令牌的最佳值,那么我的问题2仍然有效?对于给定的硬件配置/节点,是否可以导出num_令牌的最佳值?非常感谢您的回复