cassandra - 为什么以及何时在现实生产场景中使用 Cassandra 中的 Vnode?

标签 cassandra cassandra-2.0 cql3 cassandra-cli nosql

我知道你不必重新平衡虚拟节点,但我们什么时候真正使用 它在生产场景中吗?它的功能与物理单代币节点相同吗?如果是这样,那么为什么要使用单个 token 节点呢?如果我有大量数据和集群大小(例如 300 个节点),vnodes 有帮助吗?

最佳答案

使用 vnode 的主要好处是在引导新节点时流式传输的数据分布更均匀。为什么?那么,当添加一个新节点时,它会请求其 token 范围内的数据。理想情况下,它请求的数据将均匀地分布在所有节点上,从而减少所有将数据发送到引导节点的节点的工作负载(并加快引导过程)。

一旦您拥有大量物理节点(例如 300 个),这种好处似乎就会减少(假设没有热点或数据分区问题)。除了文档中的内容之外,我不知道引用使用或不使用 vnode 的节点数量的实际指南。是的,它在生产中可见。

更多信息可以在这里找到: http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/config/configVnodes.html

关于cassandra - 为什么以及何时在现实生产场景中使用 Cassandra 中的 Vnode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33031465/

相关文章:

php - 哪个 PHP 客户端库与 Cassandra 一起使用?

cassandra - 更改复合主键的顺序

gocql SELECT * 不返回所有列

cassandra - 没有足够的副本可用于一致性 SERIAL 查询(需要 2 个,但只有 1 个事件)

Cassandra 更改列类型 : which types are compatible?

cassandra - memtable_flush_writer意义及用途

ssl - Cassandra:如何设置节点到节点加密?

python - DataStax Enterprise 4.6.1/C* 使用 cqlengine 0.21.0 在 Python 中分页

Cassandra 非柜台系列

nosql - Cassandra 中的 MAX()、DISTINCT 和 group by