On 6/9/2018 8:14 AM, Zheng Lin Edwin Yeo wrote:
Just to confirm my understanding, if I have 2 replicas, I should set both
of them to either NRT replicas or TLOG replicas, and not one of each.
Then I set one of them to be PULL replica, which will be used for searching?

There are multiple possible combinations that will work. My opinion is that one of these combinations should be used:

Combo 1:
2 NRT replicas.
1 or more PULL replicas.
Set preferred to PULL with SOLR-11982 functionality.

Combo 2:
2 TLOG replicas.
1 or more PULL replicas.
Set preferred to PULL with SOLR-11982 functionality.

With either of those combos, behavior will be identical no matter which replica is leader.  The second option would have less work to do, but I'm not sure that it would actually have any better performance than the first option.

If you instead choose to have 1 NRT, 1 TLOG, and 1 or more PULL, then cluster behavior would be different when the NRT replica is leader than it is when the TLOG replica is leader.It would *work*, though ... and you might not even notice a difference unless you look closely into how it's behaving.

For clarity, keep in mind that a PULL replica cannot become leader.

Also keep in mind that change visibility with soft commits is only guaranteed when EVERY replica is NRT.  This is mentioned in the documentation for 7.x versions.

https://lucene.apache.org/solr/guide/7_3/shards-and-indexing-data-in-solrcloud.html#combining-replica-types-in-a-cluster

So if you choose to prefer pull replicas, you will either have to switch to hard commits for visibility, or live with search results sometimes not being completely current.

Thanks,
Shawn

Reply via email to