Hi. I am experiencing some performance issues with the
Datefilter. Basically, I'm searching an index with
around 200000 documents. I've got several threads
sharing the same IndexReader object. A single thread
searching and date filtering the index returns in
about 300ms. If 5 threads are performing searches
simultaneously, date filtering (mainly the creation of
the bitset of documents matching the date criteria I'm
passing) takes around 8s ! With 10 threads,
performance drops to 30s per query !
My investigations led me to the get(Term term) method
of the TermInfoReader. If I'm right (which I'm not
sure of at all...), this method is synchronized and
each thread has to call it for each date term within
the date bounds. So, it looks like there is some
contention here... If I understand well, this method
is synchronized because there is only one single
instance of TermInfoReader per SegmentReader, so each
thread shares the same TermEnum for date filtering.
Does anybody have any idea on how I could make
Datefiletering faster ?
Any help is welcomed ! Thanks,
Sylvain
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com
--
To unsubscribe, e-mail: <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-dev-help@jakarta.apache.org>
Datefilter. Basically, I'm searching an index with
around 200000 documents. I've got several threads
sharing the same IndexReader object. A single thread
searching and date filtering the index returns in
about 300ms. If 5 threads are performing searches
simultaneously, date filtering (mainly the creation of
the bitset of documents matching the date criteria I'm
passing) takes around 8s ! With 10 threads,
performance drops to 30s per query !
My investigations led me to the get(Term term) method
of the TermInfoReader. If I'm right (which I'm not
sure of at all...), this method is synchronized and
each thread has to call it for each date term within
the date bounds. So, it looks like there is some
contention here... If I understand well, this method
is synchronized because there is only one single
instance of TermInfoReader per SegmentReader, so each
thread shares the same TermEnum for date filtering.
Does anybody have any idea on how I could make
Datefiletering faster ?
Any help is welcomed ! Thanks,
Sylvain
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com
--
To unsubscribe, e-mail: <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-dev-help@jakarta.apache.org>