[ 
https://issues.apache.org/jira/browse/SOLR-16712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17716711#comment-17716711
 ] 

ASF subversion and git services commented on SOLR-16712:
--------------------------------------------------------

Commit 0bb5129a7d868ecd0240d8346d60c1f23bd768ac in solr's branch 
refs/heads/main from patsonluk
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=0bb5129a7d8 ]

SOLR-16712: Simplify DocCollection ctor for PRS enabled collection (#1477)



> 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
>          Components: SolrCloud
>    Affects Versions: main (10.0), 9.1.1
>            Reporter: Patson Luk
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> 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 uncertainty after `DocCollection` construction.
>  
> There's another branch which experimented with making DocCollection, Slice 
> and Replica immutable as well for PRS enabled collection 
> [https://github.com/cowpaths/fullstory-solr/pull/84] but is beyond the 
> discussion of this Jira ticket
>  



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

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

Reply via email to