You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2013/10/02 15:16:27 UTC

[jira] [Commented] (SOLR-5263) CloudSolrServer URL cache update race

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

ASF subversion and git services commented on SOLR-5263:
-------------------------------------------------------

Commit 1528457 from [~markrmiller@gmail.com] in branch 'dev/trunk'
[ https://svn.apache.org/r1528457 ]

SOLR-5263: Fix CloudSolrServer URL cache update race.

> CloudSolrServer URL cache update race
> -------------------------------------
>
>                 Key: SOLR-5263
>                 URL: https://issues.apache.org/jira/browse/SOLR-5263
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java, SolrCloud
>    Affects Versions: 4.4, 4.5, 5.0
>            Reporter: Jessica Cheng
>            Assignee: Mark Miller
>              Labels: solrcloud, solrj
>             Fix For: 5.0, 4.6
>
>         Attachments: SOLR-5263.patch
>
>
> In CloudSolrServer.request, urlLists (and the like) is updated if lastClusterStateHashCode is different from the current hash code of clusterState. However, each time this happen, only the cache entry for the current collection being requested is updated. In the following condition this causes a race:
> query collection A so a cache entry exists
> update collection A
> query collection B, request method notices the hash code changed and update cache for collection B, updates lastClusterStateHashCode
> query collection A, since lastClusterStateHashCode has been updated, no update for cache for collection A even though it's stale
> Can fix one of two ways:
> 1. Track lastClusterStateHashCode per collection and lazily update each entry
> 2. Every time we notice lastClusterStateHashCode != clusterState.hashCode(),
>    2a. rebuild the entire cache for all collections
>    2b. clear all current cache for collections



--
This message was sent by Atlassian JIRA
(v6.1#6144)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org