0

I have some questions around running Cassandra 4.1 storage nodes with dedicated coordinator-only Cassandra 4.0 nodes. I understand that some 4.1 specific features won't be available with this topology.

  1. I can see different Schema Version Hash in between the Coordinator and Storage nodes, which is as expected. So far in my testing, I haven't seen any issues making schema changes and nodes are able to reach schema agreement. As far as I understand Schema Change restrictions are only in between major versions. Is there anything that I am missing here?
  2. I can verify the streaming operations working fine with this topology like repairs and scaling of cluster (adding more nodes). Are there any other potential issues that I am not thinking?

Thanks

4
  • Can you provide more context into what you mean by coordinator/storage nodes? In Cassandra all nodes are responsible for coordinating requests and storing data. Mar 18 at 16:13
  • Also, be aware of possible differences in sstables cassandra.apache.org/_/blog/…
    – LHWizard
    Mar 25 at 20:53
  • @MárioTavares There are ways in which you can create dedicated coordinators. One way is to create out a new DC (without any replication), and using the nodes inside that DC as coordinator. Also, there is a Stargate project that creates coordinator listening to HTTP traffic.
    – Junaid
    Apr 11 at 14:32
  • @LHWizard I am not sure how SSTable differences would impact here. Since if a node is being used as coordinator only, there shouldn't be any reads from the local storage.
    – Junaid
    Apr 11 at 14:35

1 Answer 1

0

Thanks for explaining the current setup.

Regarding coordinator-only nodes, I would advise against a multi-datacenter setup. The reason being that even if you have a non-replicated node (or nodes) servicing requests as coordinators only in a dedicated logical datacenter, every coordinator-only node will still elect a coordinator node in each of the other replicated datacenters for each request it gets from clients. This means that if the goal of your setup is to allocate the coordination overhead away from storage nodes, you're only reducing Native Transport overhead (Cassandra-client protocol) but not request coordination.

A coordinator-only setup that I heard of, but never played around with, consists of adding a node (or nodes) to an existing datacenter with the option cassandra.join_ring=false. This will make it so that it can service requests as a coordinator in the datacenter it is located, while not owning any tokens, and therefore replicated data.

If you decide to keep a multi-datacenter setup, then my recommendation would be to upgrade the coordinator(s) to 4.1 if possible. Cassandra is not built to run on mixed-version mode for long periods. That said, I've seen Cassandra 3.X clusters running with mixed minor versions in a single datacenter for months without any issues.

You also mentioned that you're aware that you can't use 4.1 features in this setup, so I'll skip that argument :)

3
  • Yes, that's correct the other way is to have cassandra.join_ring=false. I can verify that these nodes don't own any tokens from nodetool gossipinfo. So if I interpret your response, if I use the coordinators with cassandra.join_ring=false, it should be fine running in mixed minor versions (4.0 & 4.1) though not recommended to run in the longer run.
    – Junaid
    Apr 15 at 10:52
  • To be clear, I'm not advising you to run in mixed minor versions - do it at your own risk. Regarding coordination, even though I never used either model for coordinator-only nodes, I recommend adding coordinators with cassandra.join_ring=false rather than in a secondary datacenter with no replication. Bear in mind that you may have to set up a node filter at the Cassandra driver's Load Balancer to route requests specifically to coordinator-only endpoints (as opposed to endpoints in a local datacenter). Apr 15 at 11:29
  • Yeah, got your point.
    – Junaid
    Apr 15 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.