【发布时间】:2016-01-07 00:01:19
【问题描述】:
我知道您不必重新平衡 vnode,但我们什么时候真正使用 它在生产场景中?它的功能是否与物理单令牌节点相同?如果是这样,那为什么要使用单个令牌节点呢?如果我有大量数据和集群大小(比如 300 个节点),vnodes 是否有帮助?
【问题讨论】:
标签: cassandra cassandra-2.0 cql3 cassandra-cli nosql
我知道您不必重新平衡 vnode,但我们什么时候真正使用 它在生产场景中?它的功能是否与物理单令牌节点相同?如果是这样,那为什么要使用单个令牌节点呢?如果我有大量数据和集群大小(比如 300 个节点),vnodes 是否有帮助?
【问题讨论】:
标签: cassandra cassandra-2.0 cql3 cassandra-cli nosql
使用 vnode 的主要好处是在引导新节点时可以更均匀地流式传输数据。为什么?那么,当添加一个新节点时,它将请求其令牌范围内的数据。最理想的情况是,它请求的数据将均匀分布在所有节点上,从而减少向引导节点发送数据的所有节点的工作量(并加快引导过程)。
一旦您拥有大量物理节点,例如您的 300 个示例,这种好处似乎会减少(假设没有热点或数据分区问题)。除了文档中的内容之外,我不知道参考要使用或不使用 vnode 的节点数量的实际指南。是的,它已在生产中看到。
更多信息可以在这里找到: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/config/configVnodes.html
【讨论】:
除了克里斯的出色回答之外,我还要补充一点。当您有一个带有 vnode 的大型集群时,让 Cassandra 管理令牌范围会很有帮助。如果没有 vnode,您最终将不得不自己为每个(现有和)新节点调整和重新指定令牌范围。使用 vnodes,Cassandra 会为您处理。
比较文档中列出的步骤的区别:
添加不带 vnode 的节点:http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsAddRplSingleTokenNodes.html
对比
使用 vnode 添加:http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_add_node_to_cluster_t.html
【讨论】: