You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Patson Luk (Jira)" <ji...@apache.org> on 2022/11/23 02:30:00 UTC

[jira] [Created] (SOLR-16560) Pull replication appears to consume excessive CPU as it does not use Segment Reader pooling

Patson Luk created SOLR-16560:
---------------------------------

             Summary: Pull replication appears to consume excessive CPU as it does not use Segment Reader pooling
                 Key: SOLR-16560
                 URL: https://issues.apache.org/jira/browse/SOLR-16560
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: SolrCloud
    Affects Versions: 8.8, main (10.0)
            Reporter: Patson Luk


While we are experimenting with adding PULL replica to our solr cluster, it's found from profiling that IndexFetcher seems to impose much more CPU overhead than anticipated , and most of those CPU time are spent in `SegmentReader.init` which is called by `SolrCore.openNewSearch` from the `IndexFetcher`.

With some debugging, it's found that for every replication on an updated collection, a new `SegmentReader` is created for every segment for such collection (not only the ones that are pulled down), compared to `SolrCore.openNewSearch` triggered from regular commit, which ONLY creates `SegmentReader` for new segments, which old `SegmentReader`s are obtained from `ReaderPool`. 

Unfortunately, such pool does not work for `IndexFetcher` as it opens a new `IndexWriter` on every run at [here|https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java#L749], which creates a new `ReaderPool`.

I am not familiar enough to tell whether such new `IndexWriter` is always needed, but opening `SegmentReader` for every segment of a collection seems excessive for pull replication.

Any thoughts on this please? Many thanks!! :)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org