[
https://issues.apache.org/jira/browse/SOLR-6252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Avishai Ish-Shalom updated SOLR-6252:
-------------------------------------
Attachment: solr-uninvertedfield-cache.patch
A patch using a single synchronized block and no .wait() calls. should be free
of deadlocks.
> 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,
> solr-uninvertedfield-cache.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: [email protected]
For additional commands, e-mail: [email protected]