You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "David Smiley (Jira)" <ji...@apache.org> on 2023/03/11 20:32:00 UTC

[jira] [Comment Edited] (SOLR-16507) Remove NodeStateProvider & Snitch

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

David Smiley edited comment on SOLR-16507 at 3/11/23 8:31 PM:
--------------------------------------------------------------

Hmmm; whoops; looks like I overlooked this rather significant use of NodeStateProvider!

[~ab] and [~ilan], I could use some advise here on the vision.  SolrCloudManager exposes a NodeStateProvider.  Its only use nowadays (ignoring the shard split case) is for AttributeFetcherImpl to be its backing core implementation.  AttributeFetcher is retrieved from a PlacementContext (which can be instantiated wherever) for replica placement purposes.  There seems to be a duality in purpose between NodeStateProvider and AttributeFetcher.  I don't see why both exists.  Granted NSP is the "real" impl whereas AttributeFetcherImpl is backed by SolrClientNodeStateProvider.


was (Author: dsmiley):
Hmmm; whoops; looks like I overlooked this rather significant use of NodeStateProvider!

[~ab] and [~ilan], I could use some advise here on the vision.  SolrCloudManager exposes a NodeStateProvider.  Its only use nowadays (ignoring the shard split case) is for AttributeFetcherImpl to be its backing core implementation.  AttributeFetcher is retrieved from a PlacementContext (which can be instantiated wherever) for replica placement purposes.  There seems to be a duality in purpose between NodeStateProvider and AttributeFetcher.  I don't see why both exists.  Granted NSP is the "real" impl whereas AttributeFetcherImpl is backed by SolrClientNodeStateProvider.


  , ignoring the shard split usage.  Not sure what the design vision is behind SolrCloudManager but NodeStateProvider's presence on it suggests a degree of broad prominence beyond AttributeFetcher.  Looking at AttributeFetcher (especially its impl), it appears to me that AttributeFetcher is, in a way, NodeStateProvider's replacement.  Which is to say NodeStateProvider could be an implementation detail behind AttributeFetcher but otherwise be more invisible, not on SolrCloudManager?  Looking closer... maybe actually PlacementContext since that's how one actually accesses AttributeFetcher

> Remove NodeStateProvider & Snitch
> ---------------------------------
>
>                 Key: SOLR-16507
>                 URL: https://issues.apache.org/jira/browse/SOLR-16507
>             Project: Solr
>          Issue Type: Task
>            Reporter: David Smiley
>            Priority: Major
>              Labels: newdev
>
> The NodeStateProvider is a relic relating to the old autoscaling framework that was removed in Solr 9.  The only remaining usage of it is for SplitShardCmd to check the disk space.  For this, it could use the metrics api.
> I think we'll observe that Snitch and other classes in org.apache.solr.common.cloud.rule can be removed as well, as it's related to NodeStateProvider.
> Only org.apache.solr.cluster.placement.impl.AttributeFetcherImpl#getMetricSnitchTag and org.apache.solr.cluster.placement.impl.NodeMetricImpl refer to some constants in the code to be removed.  Those constants could move out, consolidated somewhere we think is appropriate.



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