当将新节点引导到 cassandra 环中时,如果 RF 为 1,新数据将插入何处?
When bootstrapping a new node into a cassandra ring where will be the new data will be inserted if RF is 1?
据我了解,当您将新节点添加到启用了虚拟节点的环时,它将被分配一些令牌范围,并且数据将从环中的现有节点流式传输到新节点。当这个引导过程继续进行时,新节点将提供写入服务而不是读取服务。
假设在这个过程进行时,如果必须将新数据插入到复制为 1 的新节点的令牌范围内,那么这将被写入具有该令牌范围的旧节点和新节点,还是将被写入新节点.如果只写到新节点,新插入数据的请求来了,新节点还没有完全加入环,由哪个节点来服务读请求。
当在 Cassandra 中加入一个新节点时,该节点不会完全成为环中新令牌的所有者以进行读取或写入操作,直到它的新数据完全流式传输到它为止。在您描述的过程中,数据仍将写入拥有该令牌范围的原始节点 (A),直到新节点 (B) 已完全加载数据。此时节点 B 将广播一条消息,表明它现在是新令牌范围的所有者,所有未来的 R/W 请求都将从 A 定向到 B。
据我了解,当您将新节点添加到启用了虚拟节点的环时,它将被分配一些令牌范围,并且数据将从环中的现有节点流式传输到新节点。当这个引导过程继续进行时,新节点将提供写入服务而不是读取服务。 假设在这个过程进行时,如果必须将新数据插入到复制为 1 的新节点的令牌范围内,那么这将被写入具有该令牌范围的旧节点和新节点,还是将被写入新节点.如果只写到新节点,新插入数据的请求来了,新节点还没有完全加入环,由哪个节点来服务读请求。
当在 Cassandra 中加入一个新节点时,该节点不会完全成为环中新令牌的所有者以进行读取或写入操作,直到它的新数据完全流式传输到它为止。在您描述的过程中,数据仍将写入拥有该令牌范围的原始节点 (A),直到新节点 (B) 已完全加载数据。此时节点 B 将广播一条消息,表明它现在是新令牌范围的所有者,所有未来的 R/W 请求都将从 A 定向到 B。