Hello.

- We currently have solr 4 in master-slave mode across 2 DataCenters.

- We are planning to run the system in active-active mode, meaning that
search requests will go to Solr Slaves in both DC-A and DC-B.

- We have a highly available and cross DC database that feeds the
SolrMaster in both DC. So, both Solr Masters are being kept up-to-date.

- In order to allow all slaves in both DC to have the very same index
version, we have come up with the idea of having multiple masterUrl on each
slave, i.e masterUrl=masterUrl-A,masterUrl-B (and this is the main point of
this post)

- When both DC are available, only masterUrl-A is used for fetching the
index and the topology would look like the one shown at
https://www.dropbox.com/s/4vqdx70af5ddn69/master-slave-failover.png

- In case the worst happens and we lose DC-A,   the slaves in DC-B will get
network errors like NoRouteToHost or ConnectionTimeout.

- After few attempts, the slaves will switch to using the next url in the
masterUrl variable which would be masterUrl-B

- This should work pretty well and when DC-A becomes available, we could
issue a rest API call to reset the masterUrl or restart the master in DC-B
and slaves in DC-B should switch back to using masterUrl-A.

- I would like to gather your thought about this idea.

- If this makes sense, I could raise a Jira ticket to enable multiple
masterUrl and the fail-over principle described here.

Thank you very much.

Arcadius.

Reply via email to