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