【发布时间】:2013-03-30 03:15:16
【问题描述】:
我想了解以下内容, 假设我们有两个数据中心 DC1 和 DC2,每个数据中心有两个节点。 现在我已经形成了一个令牌环,顺序为 DC1:1 - DC2:1 - DC1:2 - DC2:2。 让我们假设,我没有跨 DC 配置我的副本。 现在我的问题是,如果我将数据写入 DC2 中,密钥会仅映射到 DC2 中的节点还是会映射到令牌环中的任何节点?
【问题讨论】:
标签: cassandra
我想了解以下内容, 假设我们有两个数据中心 DC1 和 DC2,每个数据中心有两个节点。 现在我已经形成了一个令牌环,顺序为 DC1:1 - DC2:1 - DC1:2 - DC2:2。 让我们假设,我没有跨 DC 配置我的副本。 现在我的问题是,如果我将数据写入 DC2 中,密钥会仅映射到 DC2 中的节点还是会映射到令牌环中的任何节点?
【问题讨论】:
标签: cassandra
如果您的密钥空间复制选项设置为
{DC1:2}
(我假设这就是您所说的未跨 DC 配置副本的意思。)然后数据将仅存储在 DC1 上,因为 DC2 的复制因子隐式为零。您可以将数据写入任何节点(DC1 或 DC2)并将其转发。这是因为,在 Cassandra 中,写入的目的地并不取决于写入的节点。
但是,如果您使用
{DC1:2, DC2:2}
然后所有数据将被写入所有节点,无论写入位置如何。
【讨论】: