On 4/27/2015 3:44 PM, spillane wrote: > I manage a SolrCloud with 5 shards. Queries go thru an AWS load balancer but > indexing does not, so my leader1 is getting clobbered. Should my SolrJ app > be pointing at a load balancer and if so will indexing via the > ConcurrentUpdateSolrServer class still work?
There are two problems with ConcurrentUpdateSolrServer (CUSS) in your situation. One is that it is not cloud-aware. Only the cloud object -- CloudSolrServer (CloudSolrClient in 5.0 and later) is cloud-aware. The other problem is that CUSS swallows exceptions. The Solr server that you are connecting to with CUSS could be entirely down and your code would think the update had succeeded. If you are only querying and updating Solr with the cloud object in SolrJ, you do not need a load balancer at all, and index updates will proceed as fast as they can, because the cloud object knows where the shard leaders are. SolrCloud will handle indexing requests properly no matter what server receives them, so a load balancer does not present a problem with it working correctly, although it might present a performance issue. If the update is sent somewhere other than the leader replica of the shard that will actually contain the document, indexing is much slower than optimal. Thanks, Shawn