[ https://issues.apache.org/jira/browse/LUCENE-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Uwe Schindler updated LUCENE-4163: ---------------------------------- Attachment: LUCENE-4163.patch Slightly improved test (null keys and iterator conformance). I think that's ready to commit and brings a big improvement in concurrency. We should backport this to 3.6.1! > 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 > > > 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org