I have a Cassandra cluster with 3 datacenters of 6 nodes each - DC1, DC2 and DC3 like this. Lets say I have a NetworkTopologyStrategy
and while creating a keyspace I do,
CREATE KEYSPACE test WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'DC1' : 3 ,'DC2' : 3,'DC3' : 3 }
which makes sure that any write is replicated on 3 nodes in each datacenter only after which the write is successful.
What happens if an entire datacenter goes down ?
Lets say all nodes in Dc3 goes down! In this case, a write request to update a table, even with Write consistency level of ONE (Consistency Level: A write must be written to the commit log and memtable of at least one replica node. I would assume it needs to be written to atleast one node in each datacenter.) would fail right ? This request will try to update atleast 3 nodes in DC3, which it cant because of all nodes being down.