You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Yonik Seeley (JIRA)" <ji...@apache.org> on 2008/06/18 23:03:44 UTC

[jira] Commented: (LUCENE-1309) Using IndexSearcher in a multithreaded context causes contention

    [ https://issues.apache.org/jira/browse/LUCENE-1309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12606094#action_12606094 ] 

Yonik Seeley commented on LUCENE-1309:
--------------------------------------

How many threads were used to do this test?

bq. Because it is usually recommended to reuse the IndexSearcher
Yes (actually the IndexReader is the important part to cache and re-use).
Because of memory usage associated with an IndexReader, it would be much better to improve or fix multi-threaded behavior rather than use multiple IndexReaders.

> Using IndexSearcher in a multithreaded context causes contention
> ----------------------------------------------------------------
>
>                 Key: LUCENE-1309
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1309
>             Project: Lucene - Java
>          Issue Type: Bug
>    Affects Versions: 2.3.1, 2.3.2
>         Environment: * WinXP, Dual Core Centrino
> * Opensuse Linux, Dual Core AMD
> java version "1.6.0_06"
> Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
> Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
>            Reporter: Rene Schwietzke
>         Attachments: yad.zip
>
>
> The attached code allows to search with a single IndexSearcher across threads or with a single instance per Thread, additionally it allows to deals with String.intern in Field from LUCENE-1308.
> Really interesting is the behavior of the current implementation (Field String.intern) The performance improves dramatically.
> Is this by design? Because it is usually recommended to reuse the IndexSearcher. How about a version to supports mult-threading much better basically delivering a read-only view?
> The following results have been measured. The [main] part is a single threaded run. The following thread results
> _Field String.intern, Single Searcher_
> [main] Search  took: 3453ms
> [Thread-2] Search  took: 17812ms
> [Thread-3] Search  took: 18313ms
> [Thread-1] Search  took: 18234ms
> [Thread-0] Search  took: 18562ms
> _Field WeakHashMap, Single Searcher_
> [main] Search  took: 3156ms
> [Thread-3] Search  took: 14953ms
> [Thread-1] Search  took: 15593ms
> [Thread-0] Search  took: 15656ms
> [Thread-2] Search  took: 16188ms
> _Field ConcurrentHashMap, Single Searcher_
> [main] Search  took: 2844ms
> [Thread-1] Search  took: 14812ms
> [Thread-0] Search  took: 14890ms
> [Thread-2] Search  took: 15172ms
> [Thread-3] Search  took: 14656ms
> _Field intern, Searcher per Thread_
> [main] Search  took: 3687ms
> [Thread-2] Search  took: 10766ms
> [Thread-1] Search  took: 10734ms
> [Thread-0] Search  took: 11047ms
> [Thread-3] Search  took: 10938ms
> _Field Weak, Searcher per Thread_
> [main] Search  took: 3187ms
> [Thread-3] Search  took: 11625ms
> [Thread-2] Search  took: 12484ms
> [Thread-1] Search  took: 12609ms
> [Thread-0] Search  took: 12391ms
> _Field Concurrent, Searcher per Thread_
> [main] Search  took: 2938ms
> [Thread-3] Search  took: 10203ms
> [Thread-2] Search  took: 10360ms
> [Thread-1] Search  took: 10406ms
> [Thread-0] Search  took: 10719ms

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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