On Mon, Sep 13, 2021 at 10:58 AM S G <sg.online.em...@gmail.com> wrote:
> Hello, > > As mentioned in https://cassandra.apache.org/_/cassandra-basics.html, can > someone clarify how many coordinator nodes are there in the cluster at any > given time? > > 1. Is there a dedicated *single* coordinator node in the whole cluster > that changes from time to time? > 2. Or any node becomes a coordinator node when the client-request > lands on it? > > > I am assuming it is the latter because the former will make the > coordinator node a SPOF. > Every host with binary/native enabled can act as a coordinator. > > As an example, if we have a 100 node cluster and there are no hot > partitions etc, then is it fair to say that at any given time, generally > speaking, each node will be acting as a coordinator node for an equal > number of requests? > Assuming your clients are using token-aware load balancing/routing, yes. > So for each request, there is a single coordinator node. > Yes (modulo retries) > But for all requests at a given time, the coordinator nodes are equally > distributed among the cluster. > > This is the typical behavior, yes. > Assumption: The client is intelligent enough and not sending traffic to > just a single node. > > Thanks in advance for clarifying ! > There's an asterisk here that you CAN do an advanced model where you DONT enable native/binary on every host, and instead only do it on a subset of hosts, and disable storage on those hosts (-Dcassandra.join_ring=false) and then you build effectively a stateless coordination tier in front of the storage hosts. That's relatively rare/advanced, but strictly possible. - Jeff