[
https://issues.apache.org/jira/browse/SOLR-17921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18021536#comment-18021536
]
David Smiley commented on SOLR-17921:
-------------------------------------
Yes, this is a problem. The same is true of a collection's state; no? That
is, I think CloudSolrClient ideally should act on whatever stale information it
has (expiring after a rather long time to bound the cache), while
asynchronously updating it once it's aware that its state is no longer current.
CloudSolrClient becomes aware of stale collection state via {{\_stateVer\_}}
but currently has no similar mechanism for live nodes. A hash could work.
Only time expiry is crude. See this related issue: SOLR-17601 and comments.
> BaseHttpClusterStateProvider should prefetch refreshes of liveNodes
> -------------------------------------------------------------------
>
> Key: SOLR-17921
> URL: https://issues.apache.org/jira/browse/SOLR-17921
> Project: Solr
> Issue Type: New Feature
> Components: SolrJ
> Reporter: Houston Putman
> Priority: Major
> Labels: pull-request-available
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Currently the BaseHttpClusterStateProvider synchronously updates the
> liveNodes when a request comes in and the cached liveNodes has expired. There
> should be an asynchronous re-fetching of this data so that requests are not
> blocked after expiration.
> Also the getLiveNodes() method was made synchronized in SOLR-17607, which is
> very expensive for multiThreaded solrJ applications, as getLiveNodes() is
> called very often. So that needs to be fixed to only block when the liveNodes
> need to be fetched.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]