In our Prod cluster, I see some of the system* keyspaces with SimpleStrategy. As we are adding new DCs in our cluster we need to be on NetworkTopologyStrategy otherwise while I am running nodetool rebuild, It got failed.
I alter all keyspaces from SimpleStrategy to NetworkTopologyStrategy & rebuild works well.
During ALTER it gives warning also that you are altering system keyspace.
Another question: Opscenter Keyspace(rollup* tables) is having a hell lot of data, why I should replicate that, it should be enough to put on only 1 DC??
My question what should be the ideal strategy for system* keyspaces??
A little warning on this one.
systemandsystem_schemahave a special replication strategy ofLocalStrategy, and they should stay that way.The other keyspaces of
system_auth,system_distributed, andsystem_traceshowever, are a different story. Setting those to useNetworkTopologyStrategywith a RF 3 (assuming each DC has at least 3 nodes) for each DC is perfectly acceptable. Setting that forsystem_distributed, andsystem_tracesisn't as important, but it shouldn't hurt anything.On the other hand,
system_authshould definitely be set to useNetworkTopologyStrategywith a RF specified for each DC. The reason, is thatSimpleStrategycould potentially put all of its replicas in a single DC, or even zero replicas in one DC. That could cause high latency or even timeouts for auth checks, as that would result in cross-DC network traffic.Also, if your applications use DC-specific load balancing policies, you will need to specify a RF for each DC in
system_auth. As mentioned above, usingSimpleStrategycould result in a DC not getting any replicas for a user. And than would prevent DC-specific applications from connecting.