On 2/25/2014 8:09 AM, Oliver Schrenk wrote:
> I want to run two logical instances (leader & replica) of Solr on each 
> physical 
> machine (host_1 & host_2).
> 
> Everything is running but the shard is replicated on the same physical 
> machine!
> Which doesn't work as a failover mechanism. So at the moment the layout is as
> follows:

Don't run multiple instances of Solr on one machine.  Instead, run one
instance per machine and create the collection with the maxShardsPerNode
parameter set to 2 or whatever value you need.  Running multiple
instances is a waste of memory, and Solr is perfectly capable of running
multiple indexes (cores) on one instance.  When there is one Solr
instance per machine, SolrCloud will never put replicas on the same
machine unless you specifically build them that way with the CoreAdmin API.

The way you've set it up, SolrCloud just sees that you have four Solr
instances.  It does not know that they are on the same machine.  As far
as it is concerned, they are entirely separate.

You might think that it should be able to see that they have the same
hostname or IP address, but if we checked for that, we would lose a
*lot* of flexibility that users demand.  It would be impossible to set
up test instances where they are all on the same machine.  There are
probably other networking scenarios that wouldn't function properly.

Something that would be a good idea is an optional config flag that
would make SolrCloud compare hostnames when building a collection and
avoid putting replicas on nodes where the hostname matches.  Whether to
default this option to on or off is a whole separate discussion.

Yet another whole separate discussion: You need three physical nodes for
a redundant zookeeper, but I see only one host (localhost) in your
zkHost parameter.

Thanks,
Shawn

Reply via email to