Thanks Anshum.

Sure, creating a replica will make it failure resistant, but death of one shard 
should not make the whole cluster unusable.

1/3rd of the keys hosted in the killed shard should be unavailable but others 
should be available. Right?

Also, any suggestions on the recommended size of zk and solr cluster size and 
configuration?

Example: 3 shards with 3 replicas and 3 zk processes running on the same solr 
mode sounds acceptable? (Total of 6 VMs)

Thanks,
-Utkarsh 

On Jun 22, 2013, at 4:20 AM, Anshum Gupta <ans...@anshumgupta.net> wrote:

> You need to have at least 1 replica from each shard for the SolrCloud setup
> to work for you.
> When you kill 1 shard, you essentially are taking away 1/3 of the range of
> shard key.
> 
> 
> On Sat, Jun 22, 2013 at 4:31 PM, Utkarsh Sengar <utkarsh2...@gmail.com>wrote:
> 
>> Hello,
>> 
>> I am testing a 3 node solrcloud cluster with 3 shards. 3 zk nodes are
>> running in a different process in the same machines.
>> 
>> I wanted to know the recommended size of a solrcloud cluster (min zk
>> nodes?)
>> 
>> This is the SolrCloud dump: https://gist.github.com/utkarsh2012/5840455
>> 
>> And, I am not sure if I am hitting this frustrating bug or this is just a
>> configuration error from my side. When I kill any *one* of the nodes, the
>> whole cluster stops responding and I get this request when I query any one
>> of the two alive nodes.
>> 
>> {
>>  "responseHeader":{
>>    "status":503,
>>    "QTime":2,
>>    "params":{
>>      "indent":"true",
>>      "q":"*:*",
>>      "wt":"json"}},
>>  "error":{
>>    "msg":"no servers hosting shard: ",
>>    "code":503}}
>> 
>> 
>> 
>> I see this exception:
>> 952399 [qtp516992923-74] ERROR org.apache.solr.core.SolrCore  –
>> org.apache.solr.common.SolrException: no servers hosting shard:
>>    at
>> 
>> org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:149)
>>    at
>> 
>> org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:119)
>>    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>    at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>>    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>    at
>> 
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>>    at
>> 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>>    at java.lang.Thread.run(Thread.java:662)
>> 
>> 
>> --
>> Thanks,
>> -Utkarsh
> 
> 
> 
> -- 
> 
> Anshum Gupta
> http://www.anshumgupta.net

Reply via email to