Tobias Bocanegra wrote:
well, from a first glance: the more threads you add, the faster the queries are until you reach the number of processors. if you expect linear improvement - that does not work, since the actual 'searching' is synchronized (marcel, correct me if i'm saying something wrong here).
it's not fully synchronized, queries do run in parallel, which can be seen in Davids results. but at a lower level, probably in lucene, some part of the query execution is synchronized.
An easy way to find out what parts of the query execution is synchronized, is to get a thread dump while the queries are running. This will show you/us where the threads are waiting during their execution. To simplify analysis I'd recommend to run only a couple of queries concurrently, e.g. equal to the number of processors you have.
regards marcel