在我们的Prod集群中,我看到了一些带有SimpleStrategy的 system * 键空间。 当我们在集群中添加新的DC时,我们需要使用NetworkTopologyStrategy,否则当我运行nodetool rebuild时,它将失败。
我将所有键空间从SimpleStrategy更改为NetworkTopologyStrategy,并且重建效果很好。
在ALTER期间,它还会警告您正在更改系统键空间。
另一个问题: Opscenter键空间(汇总表)拥有大量数据,为什么我应该复制这些数据,仅放置1个DC就足够了?
我的问题是系统*键空间的理想策略是什么?
答案 0 :(得分:3)
我的问题是系统*键空间的理想策略是什么?
对此有一点警告。 system
和system_schema
具有LocalStrategy
的特殊复制策略,应该保持这种方式。
然而system_auth
,system_distributed
和system_traces
的其他键空间是一个不同的故事。对于每个DC,将其设置为与RF 3一起使用NetworkTopologyStrategy
(假设每个DC至少具有3个节点)是可以接受的。将system_distributed
和system_traces
设置为 as 并不重要,但它不会对任何人造成伤害。
另一方面,system_auth
绝对应该设置为将NetworkTopologyStrategy
与为每个DC指定的RF一起使用。原因是SimpleStrategy
可能会将其所有副本放置在单个DC中,甚至将零个副本放置在一个DC中。这可能会导致高延迟,甚至导致身份验证检查超时,因为这会导致跨DC网络流量。
此外,如果您的应用程序使用特定于DC的负载平衡策略,则 需要为system_auth
中的每个DC指定一个RF。如上所述,使用SimpleStrategy
可能导致DC无法为用户获得任何副本。而且将阻止特定于DC的应用程序进行连接。