Hi Solr experts,

We're in the process of upgrading SolrCloud from 6.4.2 to 8.3.1, and our
performance testing is consistently showing search latencies are measurably
higher in 8.3.1, for certain kinds of queries it may be as much as 200 ms
higher on average.

We've seen this now in 2 different environments.  In one environment, we
effectively doubled the OS memory for Solr 8 (by removing a replica set),
and saw little improvement.

The specs on the VM's we're using are the same from Solr 6 and 8, and the
index sizes and shard distribution are also the same.  We reviewed garbage
collection logs, and didn't see any red flags there.  We're still using
Java 8 (sorry!).  Content was re-fed into Solr 8 from scratch.

We re-ran queries removing all the usual suspects for high latencies:
grouping, faceting, highlighting.We saw some improvement (as we would
expect), but nothing approaching the average Solr 6 latencies with all
those features turned on.

We've narrowed the largest overall latencies to queries which contain many
terms OR'd together (essentially synonyms we add to the query ourselves);
there may be as many as 0-38 or more quoted phrases OR'd together.
Latencies increase the more synonyms we add (we always knew this), but it
seems much worse in Solr 8. (It is an unfortunate quirk of our content that
these terms often have pretty high frequencies).  But it's not clear if
this is just amplifying an underlying issue, or if something fundamental
changed in the way Solr (or Lucene) resolves queries with OR'd terms.  We
use a custom variant of edismax (but we also modified the queries to enable
use of OOTB edismax, and still saw no improvement).

We also noted that 0-term queries (*:*) with lots of facets perform as well
as Solr 6, so it definitely seems related to searching for terms.

I'm out of ideas here.  Has anyone experienced similar degradation from
older Solr versions?

Thanks in advance for any help you can provide.

Reply via email to