[ https://issues.apache.org/jira/browse/LUCENE-994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531262 ]
Mark Miller commented on LUCENE-994: ------------------------------------ Sorry for the delay. Here is the debug output. As I said, I am actually writing to two indexes per doc, but I am also doing other processing and storing, so the slow down must be significant anyway (well over 25%?). The first Writer has an analyzer that stems and caches the unstemmed form , the second writer reads from the cached unstemmed tokens. If the debug does not lead anywhere I can try to isolate the slowdown out of my app code (if it exists without writing with two writers, though the writing is sequential). Also, I will try with some other merge factors etc. I think that the performance gap grows with the number of documents. Attached: 4 files, one for each writer with the old policy and the new. Run details: 4000 some docs, 30 doc/s new, 50 doc/s old > Change defaults in IndexWriter to maximize "out of the box" performance > ----------------------------------------------------------------------- > > Key: LUCENE-994 > URL: https://issues.apache.org/jira/browse/LUCENE-994 > Project: Lucene - Java > Issue Type: Improvement > Components: Index > Affects Versions: 2.3 > Reporter: Michael McCandless > Assignee: Michael McCandless > Priority: Minor > Fix For: 2.3 > > Attachments: LUCENE-994.patch, writerinfo.zip > > > This is follow-through from LUCENE-845, LUCENE-847 and LUCENE-870; > I'll commit this once those three are committed. > Out of the box performance of IndexWriter is maximized when flushing > by RAM instead of a fixed document count (the default today) because > documents can vary greatly in size. > Likewise, merging performance should be faster when merging by net > segment size since, to minimize the net IO cost of merging segments > over time, you want to merge segments of equal byte size. > Finally, ConcurrentMergeScheduler improves indexing speed > substantially (25% in a simple initial test in LUCENE-870) because it > runs the merges in the backround and doesn't block > add/update/deleteDocument calls. Most machines have concurrency > between CPU and IO and so it makes sense to default to this > MergeScheduler. > Note that these changes will break users of ParallelReader because the > parallel indices will no longer have matching docIDs. Such users need > to switch IndexWriter back to flushing by doc count, and switch the > MergePolicy back to LogDocMergePolicy. It's likely also necessary to > switch the MergeScheduler back to SerialMergeScheduler to ensure > deterministic docID assignment. > I think the combination of these three default changes, plus other > performance improvements for indexing (LUCENE-966, LUCENE-843, > LUCENE-963, LUCENE-969, LUCENE-871, etc.) should make for some sizable > performance gains Lucene 2.3! -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]