Cassandra 卡桑德拉虚拟节点
虽然它被问了很多次,回答了很多次,但我还是没有找到一个好的答案。 无论是在论坛上还是在卡桑德拉文档中 虚拟节点是如何工作的 假设一个节点有256个虚拟节点。 医生说它们是随机分布的。 (抛开这种“随机”的做法……我还有一个更紧迫的问题):Cassandra 卡桑德拉虚拟节点,cassandra,Cassandra,虽然它被问了很多次,回答了很多次,但我还是没有找到一个好的答案。 无论是在论坛上还是在卡桑德拉文档中 虚拟节点是如何工作的 假设一个节点有256个虚拟节点。 医生说它们是随机分布的。 (抛开这种“随机”的做法……我还有一个更紧迫的问题): 每个cassandra节点(“物理节点”)实际上负责环中几个不同的位置,对吗?(适用于256个地点)?这是否意味着“物理”节点在整个循环中“扩散” 在这种情况下,重新平衡是如何工作的?如果我添加一个新节点? 环将获得额外的256个节点。 这些附加节点将如何与旧
互联网上有很多信息,但没有人做出明确的解释…v节点将可用的令牌范围划分为更小的范围,由cassandra.yaml文件中的num_令牌设置定义。vnode范围在集群中随机分布,通常是不连续的。如果我们使用大量的num_令牌来划分令牌范围,随机分布意味着我们不太可能有热点。使用统计计算,使用256个Vnode时,所有大小的集群始终具有良好的令牌范围平衡。因此,社区建议使用num_tokens默认值256来防止集群中的热点 Ans 1:-这是一系列基于num_标记的标记。如果您设置了256,您将得到默认的256个令牌范围 Ans 2:-是,当您添加或删除节点时,令牌将根据vnodes配置再次分布在集群中
有关更多详细信息,请参见此处v节点将可用令牌范围划分为更小的范围,由cassandra.yaml文件中的num_令牌设置定义。vnode范围在集群中随机分布,通常是不连续的。如果我们使用大量的num_令牌来划分令牌范围,随机分布意味着我们不太可能有热点。使用统计计算,使用256个Vnode时,所有大小的集群始终具有良好的令牌范围平衡。因此,社区建议使用num_tokens默认值256来防止集群中的热点 Ans 1:-这是一系列基于num_标记的标记。如果您设置了256,您将得到默认的256个令牌范围 Ans 2:-是,当您添加或删除节点时,令牌将根据vnodes配置再次分布在集群中
有关更多详细信息,请参见此处让SQL回答正确。另见。我只想补充几点意见:
见和 LetsNoSQL的答案是正确的。另见。我只想补充几点意见:
见和 请尝试每个问题问一个问题。请尝试每个问题问一个问题。那么,每个物理节点负责圆圈中的N(256)个哈希范围?如何提供分区?如何确保分区有足够的磁盘空间,限制在1个散列范围内(我的意思是256个分区中的一个)?如果一个分区可以分布在N个这样的散列范围内,那么如何确保它们都属于同一个物理节点呢?是的,每个节点将负责循环中的N个散列范围。事实上,它不仅仅是N*,因为每个节点都有副本。可以使用创建您自己的令牌分发。根据定义,属于一个分区键的所有数据都将映射到单个令牌范围(因为应用于分区键的哈希函数将创建一个值)。如果一个分区键将有如此多的数据,您可能需要重新考虑您的分区。那么,每个物理节点负责循环中的N(256)个哈希范围?如何提供分区?如何确保