On Mon, 2014-06-23 at 13:33 +0200, Jamie wrote:
> While running a search over several million documents, the Yourkit 
> profiler reports a deadlock on the following method. Any ideas?

> search worker <--- Frozen for at least 25m 37 sec
> org.apache.lucene.util.PriorityQueue.downHeap()

My guess is that you are requesting several million documents as your
result set, instead of just the top 10 or top 100. 

The heap implementation used by Lucene does not play well with large
result sets. Performance is bad and it allocates an excessive amount of
objects: Your machine is probably busy garbage collecting. The quick fix
is to allocate more memory for Java.

This is not a fault in the implementation as such, but rather the result
of using a heap for a large result set. If you really need a large
result set, I recommend you create your own collector that collects
everything the most compact way and perform sorting on the full
collection afterwards.

- Toke Eskildsen, State and University Library, Denmark



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to