Hi all,

     I am trying to setup async replication with a multi-dc setup. Here is 
my scenario:

1. I will have 3 nodes in each DC. For now, assume I have only 2 DCs. 
2. I would like to use async replication, such that it writes synchronously 
to the primary shard, but writes to only one node asynchronously in the 
remote DC.
3. I would like to have 2 replicas. So, 3 copies in all.

I have looked at the cluster awareness settings here 
<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-cluster.html>.
 
However, I am not sure how it will work in practice, because if I simply 
set "async" replication on each indexing request, it may choose to 
replicate all 3 copies locally (including the primary) or even worse, 1 
copy locally and 2 copies in the remote DC.

If I use the dc as the cluster awareness attribute, it will create only 1 
copy in the local dc and another one in the remote DC. That won't satisfy 
by 3 copies requirement.

If I create an additional attribute which is zone like this:

cluster.routing.allocation.awareness.attributes: dc, zone

and divide my DC into zone 1 (1 node?) and zone 2 (2 nodes?) and vice-versa 
in the remote DC,  I might be able to distribute the load between zones in 
a DC and between DCs for the 3rd copy. However, there is still the 
possibility that 2 of it's replica shards might be allocated in the remote 
DC, which will prevent me from obtaining local (DC) quorums.

Can someone shed light on how shard allocation works when you have more 
cluster allocation attributes than 1?

Also, if there is some known best practice for doing Async Replication with 
MultiDC such that local quorums are always possible for reads/writes, it 
will be greatly appreciated. In summary, I am looking for 3 copies 
including primary. 2 in the local DC and 1 in the remote DC and want to 
write synchronously only to the primary shard.

Thanks in advance,
Parag

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/8f2a2c8c-4910-487c-9e5e-bfcfb96a235d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to