You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Avishai Ish-Shalom (JIRA)" <ji...@apache.org> on 2014/12/13 19:44:13 UTC

[jira] [Commented] (SOLR-6252) A couple of small improvements to UnInvertedField class.

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

Avishai Ish-Shalom commented on SOLR-6252:
------------------------------------------

The new code is still vulnerable to deadlock: if a call gets to the 2nd synchronized block and blocks on {{cache.wait()}} then it will never be released since {{cache.notifyAll()}} is also inside a synchronized block of the same monitor object. 

> A couple of small improvements to UnInvertedField class.
> --------------------------------------------------------
>
>                 Key: SOLR-6252
>                 URL: https://issues.apache.org/jira/browse/SOLR-6252
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: Trunk
>            Reporter: Vamsee Yarlagadda
>            Assignee: Mark Miller
>            Priority: Minor
>             Fix For: 4.10, Trunk
>
>         Attachments: SOLR-6252-v3.patch, SOLR-6252.patch, SOLR-6252v2.patch
>
>
> Looks like UnInvertedField#getUnInvertedField has implemented a bit additional synchronization module rather than what is required, and thereby increasing the complexity.
> https://github.com/apache/lucene-solr/blob/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java#L667
> As pointed out in the above link, as the synchronization is performed on the cache variable(which itself will protect the threads from obtaining access to the cache), we can safely remove all the placeholder flags. As long as cache.get() is in synchronized block, we can simply populate the cache with new entries and other threads will be able to see the changes.
> This change has been introduced in https://issues.apache.org/jira/browse/SOLR-2548 (Multithreaded faceting)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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