[
https://issues.apache.org/jira/browse/LUCENE-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Uwe Schindler updated LUCENE-4163:
----------------------------------
Attachment: (was: LUCENE-4163.patch)
> Improve concurrency in MMapIndexInput.clone()
> ---------------------------------------------
>
> Key: LUCENE-4163
> URL: https://issues.apache.org/jira/browse/LUCENE-4163
> Project: Lucene - Java
> Issue Type: Improvement
> Components: core/store
> Affects Versions: 3.6, 4.0, 5.0
> Reporter: Uwe Schindler
> Assignee: Uwe Schindler
> Fix For: 4.0, 3.6.1, 5.0
>
> Attachments: LUCENE-4163.patch, LUCENE-4163.patch, LUCENE-4163.patch
>
>
> Followup issue from SOLR-3566:
> Whenever you clone the TermIndex, it also creates a clone of the underlying
> IndexInputs. In high cocurrent environments, the clone method of
> MMapIndexInput is a bottleneck (it has heavy work to do to manage the weak
> references in a synchronized block).
> Everywhere else in Lucene we use my new WeakIdentityMap for managing
> concurrent weak maps. For this case I did not do this, as the WeakIdentityMap
> has no iterators (it doe snot implement Map interface). This issue will add a
> key and values iterator (the key iterator will not return GC'ed keys), so
> MMapIndexInput can use WeakIdentityMap backed by ConcurrentHashMap and needs
> no synchronization. ConcurrentHashMap has better concurrency because it
> distributes the hash keys in different buckets per thread.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]