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

David Smiley updated SOLR-17535:
--------------------------------
    Description: 
To avoid creating intermediary maps for ClusterState consumers, and to limit 
the direct usages of CollectionRef, I propose removing both getCollectionStates 
and getCollectionsMap.  This refactoring helps with any future evolution of 
ClusterState.  Instead, callers can use forEachCollection or a new 
{{Stream<DocCollection>}} one proposed here.

 {code:java}
  /** Streams the resolved DocCollections. Use this sparingly in case there are 
many collections. */
  public Stream<DocCollection> collectionStream() {
    return 
collectionStates.values().stream().map(CollectionRef::get).filter(Objects::nonNull);
  }
{code}

  was:To avoid creating intermediary maps for ClusterState consumers, and to 
limit the direct usages of CollectionRef, I propose removing both 
getCollectionStates and getCollectionsMap.  This also unblocks future changes 
to work in a more scalable manner.  Instead, callers can use forEachCollection 
or a new {{Stream<DocCollection>}} one proposed here.


> Remove ClusterState.getCollectionStates() and getCollectionsMap()
> -----------------------------------------------------------------
>
>                 Key: SOLR-17535
>                 URL: https://issues.apache.org/jira/browse/SOLR-17535
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrCloud
>            Reporter: David Smiley
>            Assignee: David Smiley
>            Priority: Major
>
> To avoid creating intermediary maps for ClusterState consumers, and to limit 
> the direct usages of CollectionRef, I propose removing both 
> getCollectionStates and getCollectionsMap.  This refactoring helps with any 
> future evolution of ClusterState.  Instead, callers can use forEachCollection 
> or a new {{Stream<DocCollection>}} one proposed here.
>  {code:java}
>   /** Streams the resolved DocCollections. Use this sparingly in case there 
> are many collections. */
>   public Stream<DocCollection> collectionStream() {
>     return 
> collectionStates.values().stream().map(CollectionRef::get).filter(Objects::nonNull);
>   }
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to