Re: Solrcloud - Reads on specific nodes
On 1/17/2021 11:12 PM, Doss wrote: Thanks Michael Gibney , Shawn Heisey for pointing in the right direction. 1. Will there be any performance degrade if we use shards.preference? 2. How about leader election if we decided to use NRT + PULL ? TLOG has the advantage of participating in leader election correct? 3. NRT + TLOG is there any parameter which can reduce the TLOG replication time I have no idea what kind of performance degradation you might expect from using shards.preference. I wouldn't expect any, but I do not know enough details about your environment to comment. A TLOG replica that is elected leader functions exactly like NRT. TLOG replicas that are not leaders replicate the transaction log, which makes them capable of becoming leader. PULL and TLOG non-leaders do not index. They use the old replication feature, copying exact segment data from the leader. If you want SolrCloud to emulate the old master/slave paradigm, my recommendation would be to create two TLOG replicas per shard and make the rest PULL. Then use shards.preference on queries to prefer PULL replicas. The PULL replicas can never become leader, so you can be sure that they will never do any indexing. Thanks, Shawn
Re: Solrcloud - Reads on specific nodes
Thanks Michael Gibney , Shawn Heisey for pointing in the right direction. 1. Will there be any performance degrade if we use shards.preference? 2. How about leader election if we decided to use NRT + PULL ? TLOG has the advantage of participating in leader election correct? 3. NRT + TLOG is there any parameter which can reduce the TLOG replication time Have a greate week ahead! Regards, Mohandoss. On Fri, Jan 15, 2021 at 9:20 PM Shawn Heisey wrote: > On 1/15/2021 7:56 AM, Doss wrote: > > 1. Suppose we have 10 node SOLR Cloud setup, is it possible to dedicate 4 > > nodes for writes and 6 nodes for selects? > > > > 2. We have a SOLR cloud setup for our customer facing applications, and > we > > would like to have two more SOLR nodes for some backend jobs. Is it good > > idea to form these nodes as slave nodes and making one node in the cloud > as > > Master? > > SolrCloud does not have masters or slaves. > > One thing you could do is set the replica types on four of those nodes > to one type, and on the other nodes, use a different replica type. For > instance, the four nodes could be TLOG and the six nodes could be PULL. > > Then you can use the shards.preference parameter on your queries to only > query the type of replica that you want. > > > https://lucene.apache.org/solr/guide/8_7/distributed-requests.html#shards-preference-parameter > > Thanks, > Shawn >
Re: Solrcloud - Reads on specific nodes
On 1/15/2021 7:56 AM, Doss wrote: 1. Suppose we have 10 node SOLR Cloud setup, is it possible to dedicate 4 nodes for writes and 6 nodes for selects? 2. We have a SOLR cloud setup for our customer facing applications, and we would like to have two more SOLR nodes for some backend jobs. Is it good idea to form these nodes as slave nodes and making one node in the cloud as Master? SolrCloud does not have masters or slaves. One thing you could do is set the replica types on four of those nodes to one type, and on the other nodes, use a different replica type. For instance, the four nodes could be TLOG and the six nodes could be PULL. Then you can use the shards.preference parameter on your queries to only query the type of replica that you want. https://lucene.apache.org/solr/guide/8_7/distributed-requests.html#shards-preference-parameter Thanks, Shawn
Re: Solrcloud - Reads on specific nodes
I know you're asking about nodes, not replicas; but depending on what you're trying to achieve you might be as well off routing requests based on replica. Have you considered the various options available via the `shards.preference` param [1]? For instance, you could set up your "write" replicas as `NRT`, and your "read" replicas as `PULL`, then use the `replica.type` property of the `shards.preference` param to route "select" requests to the `PULL` replicas. It might also be worth looking at the options for stable routing provided by the relatively new `replica.base` property (of `shards.preference` param). If you have varying workloads with distinct cache usage patterns, for instance, this could be useful to you. To tie this back to nodes (your original question, if a replica-focused solution is not sufficient): you could still use replica types and the `shards.preference` param to control request routing, and implicitly route by node by paying extra attention to careful replica placement on particular nodes. As it happens, I'm actually doing a very simple variant of this -- but not in a general-purpose enough way to feel I'm in a position to make any specific recommendations. [1] https://lucene.apache.org/solr/guide/8_7/distributed-requests.html#shards-preference-parameter On Fri, Jan 15, 2021 at 9:56 AM Doss wrote: > Dear All, > > 1. Suppose we have 10 node SOLR Cloud setup, is it possible to dedicate 4 > nodes for writes and 6 nodes for selects? > > 2. We have a SOLR cloud setup for our customer facing applications, and we > would like to have two more SOLR nodes for some backend jobs. Is it good > idea to form these nodes as slave nodes and making one node in the cloud as > Master? > > Thanks! > Mohandoss. >