Assign the tokens like they are two separate rings, just make sure you
don't have any duplicate tokens.
http://wiki.apache.org/cassandra/Operations#Token_selection
The two datacenters are treated as separate rings, LOCAL_QUORUM will
only delay the client as long as it takes to write the data to the local
nodes. The nodes in the other datacenter will get asynchronous writes.
On 08/15/2011 03:39 PM, Oleg Tsvinev wrote:
Hi all,
I have a question that documentation has not clear answer for. I have
the following requirements:
1. Synchronously store data in datacenter DC1 on 2+ nodes
2. Asynchronously replicate the same data to DC2 and store it on 2+
nodes to act as a hot standby
Now, I have configured keyspaces with o.a.c.l.NetworkTopologyStrategy
with strategy_options=[{DC1:2, DC2:2}] and use LOCAL_QUORUM
consistency level, following documentation here:
http://www.datastax.com/docs/0.8/operations/datacenter
Now, how do I assign initial tokens? If I have, say 6 nodes total, 3
in DC1 and 3 in DC2, and create a ring as if all 6 nodes share the
total 2^128 space equally.
Now say node N1:DC2 has key K and is in remote datacenter (for an app
in DC1). Wouldn't Cassandra always forward K to the DC2 node N1 thus
turning asynchronous writes into synchronous ones? Performance impact
will be huge as the latency between DC1 and DC2 is significant.
I hope there's an answer and I'm just missing something. My case falls
under Disaster Recovery in
http://www.datastax.com/docs/0.8/operations/datacenter but I don't see
how Cassandra will support my use case.
I appreciate any help on this.
Thank you,
Oleg