Pragmatic more or less high availability option on 2 servers

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Pragmatic more or less high availability option on 2 servers

Robert Krüger


I have to set up a SOLR cluster with some availability concept (is allowed to require manual interaction on fault, however, if there is a better way, I'd be interested in recommendations).

I have two servers (A and B for the example) at my disposal.

What I was thinking about was the following setup:

Set up 2 SOLR Instances on each server, i.e.

on A)
- One master (active)
- One slave (always active) replicating index from the master using the mechanisms described in

on B)
- One master (active but not used for index updates) replicating index form the master on A
- One slave (always active) replicating index from the master on A

I'll write the configs with placeholders for properties for the address of the master server so I can start the slaves with the master on A or on B as the master to replicate from.

When B goes down, nothing happens as the slave on A is still there to serve queries as well as the master to serve update requests.

When A goes down updates will begin to fail but queries will still be served from the slave on B. A restart of B with the until then inactive master as master will bring index update functionality up again.

For simplicity's sake I did not mention any load-balancing or IP address switching stuff. I assume that I have to load-balance the access to the two slaves and make sure that when the master is switched to B that either it assumes the IP address or the clients updating the index need to be changed )the forme probably being simpler).

Now, my questions are:
- Will this work?
- Can this be simplified, i.e. does it make sense to have separate master/slave instances when they are on the same hardware or is it enough or even better to write the config of the slave on B so that it can be restarted in "master mode" based on the same index?

Thanks in advance,