[
https://issues.apache.org/jira/browse/SOLR-7129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Shalin Shekhar Mangar updated SOLR-7129:
----------------------------------------
Description:
Each stale state response from the server causes CloudSolrClient to evict the
requested collection from the local cache. At this point, the request is
retried and the latest collection state is fetched live from ZooKeeper. -There
is nothing preventing multiple request threads to simultaneously hit ZooKeeper
and cause a thundering herd effect.- There is synchronization to prevent
multiple request threads from simultaneously trying to refresh the state but
that is not enough. Each request thread which receives a stale state will
sequentially refresh state from ZK after acquiring the lock.
We should use the past and current znode version of the cluster state to make
sure that redundant fetches from ZooKeeper are never possible.
was:
Each stale state response from the server causes CloudSolrClient to evict the
requested collection from the local cache. At this point, the request is
retried and the latest collection state is fetched live from ZooKeeper. There
is nothing preventing multiple request threads to simultaneously hit ZooKeeper
and cause a thundering herd effect.
We must not only synchronise such refreshes but also use the past and current
znode version of the cluster state to make sure that redundant fetches from
ZooKeeper are never possible.
> CloudSolrClient can put excessive load on ZooKeeper for collections with
> stateFormat=2
> --------------------------------------------------------------------------------------
>
> Key: SOLR-7129
> URL: https://issues.apache.org/jira/browse/SOLR-7129
> Project: Solr
> Issue Type: Bug
> Components: SolrCloud, SolrJ
> Affects Versions: 5.0
> Reporter: Shalin Shekhar Mangar
> Assignee: Noble Paul
> Labels: difficulty-medium, impact-high
> Fix For: Trunk, 5.1
>
>
> Each stale state response from the server causes CloudSolrClient to evict the
> requested collection from the local cache. At this point, the request is
> retried and the latest collection state is fetched live from ZooKeeper.
> -There is nothing preventing multiple request threads to simultaneously hit
> ZooKeeper and cause a thundering herd effect.- There is synchronization to
> prevent multiple request threads from simultaneously trying to refresh the
> state but that is not enough. Each request thread which receives a stale
> state will sequentially refresh state from ZK after acquiring the lock.
> We should use the past and current znode version of the cluster state to make
> sure that redundant fetches from ZooKeeper are never possible.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]