You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Doss <it...@gmail.com> on 2021/01/15 14:56:09 UTC

Solrcloud - Reads on specific nodes

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.

Re: Solrcloud - Reads on specific nodes

Posted by Shawn Heisey <ap...@elyograg.org>.
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

Posted by Doss <it...@gmail.com>.
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 <ap...@elyograg.org> 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

Posted by Shawn Heisey <ap...@elyograg.org>.
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

Posted by Michael Gibney <mi...@michaelgibney.net>.
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 <it...@gmail.com> 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.
>