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/10/18 23:13:00 UTC

[jira] [Created] (SOLR-16472) Remove redundant state.json update For PRS collection creation

Patson Luk created SOLR-16472:
---------------------------------

             Summary: Remove redundant state.json update For PRS collection creation
                 Key: SOLR-16472
                 URL: https://issues.apache.org/jira/browse/SOLR-16472
             Project: Solr
          Issue Type: Improvement
      Security Level: Public (Default Security Level. Issues are Public)
          Components: SolrCloud
    Affects Versions: 9.0
            Reporter: Patson Luk


h2. Description
It is found that the existing `CreateCollectionCmd` would update the [`state.json` per new replica|https://github.com/apache/solr/blob/c80cf5b03ac1b1307df65ebe37f6ffdb26611013/solr/core/src/java/org/apache/solr/cloud/api/collections/CreateCollectionCmd.java#L334]. This potentially creates a lot of unnecessary writes as only the last state.json with all the replicas matters.

Take note that this actually is a problem for non PRS collection as well, but probably less problematic for non PRS as even if it does very similar operation per replica by sending the update to OS queue `ccc.offerStateUpdate(Utils.toJSON(props));`, at least OS would use the `ClusterStateUpdater` which uses `ZkStateWriter#enqueueUpdate` that likely batches up state.json update (only writes the latest entry every 2 secs by default) ; while for PRS, we use directly update which each call translates to an actual call to ZK.

h2.  Proposal
We will move the `ZkClient#setData` statement out of the replica loop and only call it once outside

 



--
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