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

Reply via email to