2
votes

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??

1

1 Answers

3
votes

My question what should be the ideal strategy for system* keyspaces?

A little warning on this one. system and system_schema have a special replication strategy of LocalStrategy, and they should stay that way.

The other keyspaces of system_auth, system_distributed, and system_traces however, are a different story. Setting those to use NetworkTopologyStrategy with a RF 3 (assuming each DC has at least 3 nodes) for each DC is perfectly acceptable. Setting that for system_distributed, and system_traces isn't as important, but it shouldn't hurt anything.

On the other hand, system_auth should definitely be set to use NetworkTopologyStrategy with a RF specified for each DC. The reason, is that SimpleStrategy could 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, using SimpleStrategy could result in a DC not getting any replicas for a user. And than would prevent DC-specific applications from connecting.