Question for separate query and updates with TLOG and PULL replicas

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Question for separate query and updates with TLOG and PULL replicas


I have a question about how to complete separate queries and updates in a
cluster of mixed TLOG and PULL replicas.

solr cloud setup:  Solr-7.6.0,  10 shards,  each shard has 2 TLOG + 4 PULL
In solrconfig.xml we set preferred replica type for queries to PULL:

<initParams path="/select"> <lst name="defaults"> <str name=
"shards.preference">replica.type:PULL</str> </lst>

A load-balancer is set up in front of the solr cloud, including both TLOG
and PULL replicas.  Also we use a http client for queries.  Some

1.  In the TLOG replicas, I see about the same number of external queries
in jetty access log. It is expected as our load balancer does not
differentiate TLOG and PULL replicas.  My question is,  when the TLOG
replica receives an external query, will it forward to one of the PULL
replicas? Or will it send the shard request to PULL replicas but still
serve as the aggregate node for the query?

2.  In the TLOG replicas,  I am still seeing some internal shard request,
but in much lower volume compare to PULL replicas.  I checked one leader
TLOG replica, the number of shard requests is 1% of that on PULL replicas
in the same shard.  With shards.preference=replica.type:PULL,  why would
the TLOG receive any internal shard request?

To completely separate query and updates, I think that I might need to have
the load-balancer set up to include only the PULL replicas.  Is there any
other option?