cassandra - 节点和vnode之间的区别

标签 cassandra nosql datastax

我是 Cassandra 新手,我对节点和虚拟节点的概念感到困惑。

这是我读到的内容:Cassandra 中元素的层次结构是: 集群 - 数据中心 - 机架服务器节点 该节点被描述为服务器内的数据存储层,而服务器是包含 Cassandra 软件的实际物理机器。

据我所知,在我看来,在某些情况下,vnode 比节点不同/更高效。

但是,我无法将它们放入此层次结构中。

vnode 只是上述层次结构中的一种不同类型的节点吗? 或者 是不是引入了vnode的概念之后,上面层次结构中叫server的元素现在就称为node,而上面层次结构中叫node的元素现在称为vnode!

最佳答案

您可以将虚拟节点视为您所描述的层次结构中物理节点之后的下一步。

当您调整集群大小并使数据分配更加灵活时,Vnode 有助于根据 token 重新分配数据。

datastax 网站有一个很好的解释:https://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2

编辑:在旧版本的 Cassandra 中, token 以每个服务器都有一个 token (范围)的方式进行分割,并根据复制因子在物理机之间进行复制。 vnodes 架构(例如也用于 riak)实现了“节点”层的虚拟化,将环分割为大量 token 范围(vnode),每个物理节点(cassandra 服务)上运行着多个 vnode。请查看提供的链接,其中有很好的解释和示例。

关于cassandra - 节点和vnode之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46905544/

相关文章:

java - 使用 Objectify 查询 2 个实体

java - Neo4j 中的关系对计数

python - 存储来自多个进程的数据的简单方法

java - 使用 Cassandra InstantCodec

solr - DataStax 企业 : No search results from Solr

apache-spark - 如何将 Pyspark 连接到在 docker 上运行的 datastax Cassandra?

node.js - 使用 Cassandra 进行分页

sorting - 集群顺序不适用于复合分区键

cassandra - Redis AOF fsync(始终)与 LSM 树

cassandra - DataStax Enterprise Graph 使用 Fluent API 添加边缘