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 2023/03/20 21:55:00 UTC

[jira] [Updated] (SOLR-16712) Simplify PerReplicaStates (PRS) logic in DocCollection, replace PrsSupplier with actual PerReplicaStates param

     [ https://issues.apache.org/jira/browse/SOLR-16712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patson Luk updated SOLR-16712:
------------------------------
    Summary: Simplify PerReplicaStates (PRS) logic in DocCollection, replace PrsSupplier with actual PerReplicaStates param  (was: Simplify PerReplicaStates (PRS) logic in DocCollection)

> Simplify PerReplicaStates (PRS) logic in DocCollection, replace PrsSupplier with actual PerReplicaStates param
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-16712
>                 URL: https://issues.apache.org/jira/browse/SOLR-16712
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrCloud
>    Affects Versions: main (10.0), 9.1.1
>            Reporter: Patson Luk
>            Priority: Major
>
> The current implementation of PRS requires an extra param to the DocCollection, the `PrsSupplier`, when `get` is called, would fetch the PRS states from ZK. The implementation of such supplier `LazyPrsSupplier` would only fetch the state on first call.
>  
> While this flow does work properly, this flow might introduce some unnecessary complexity:
>  # PRS entry fetching from ZK is done either during or after the `DocCollection` construction, this could be a bit inconsistent with existing non PRS `DocCollection` design which `DocCollection` is simply a immutable container that does not fetch data after its instantiation
>  # The lazy fetching could introduce some uncertainties as to when exactly the fetching happens (and if any Zookeeper IO exceptions arises)
>  
> My guess was that the lazy loading was introduced in https://issues.apache.org/jira/browse/SOLR-16580 as to avoid fetching the PRS states multiple times in the ctor of `DocCollection`, however, if we only fetch the `PerReplicaStates` once on update before calling the `DocCollection` ctor, and pass the `PerReplicaStates` object to the `DocCollection` instead, it can probably achieve similar result but with reduced complexity.
>  
>  



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