[ https://issues.apache.org/jira/browse/LUCENE-870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless updated LUCENE-870: -------------------------------------- Attachment: LUCENE-870.take2.patch Attaching patch that provides ConcurrentMergePolicyWrapper using the "stateless API" approach for MergePolicy. This must be used with the patch I just attached to LUCENE-847. This wrapper can wrap any MergePolicy instance and schedule the requested merges using background threads, which frees IndexWriter threads to continue adding/deleting docs. CMPW accepts a "max thread count" limit: if the number of concurrent merges needed exceeds this then it just returns the overflow back to IndexWriter which causes those merges to run in the foreground. Also in the patch I added 2 test cases to the existing TestStressIndexing test to use ConcurrentMergePolicyWrapper. I ran a quick test using this alg: analyzer=org.apache.lucene.analysis.SimpleAnalyzer doc.maker=org.apache.lucene.benchmark.byTask.feeds.LineDocMaker docs.file=/lucene/wikifull.txt directory=FSDirectory ram.flush.mb = 16 max.field.length = 2147483647 doc.add.log.step = 5000 doc.maker.forever=false ResetSystemErase CreateIndex {AddDoc >: * CloseIndex RepSumByName For baseline I used "LogByteSizeMergePolicy". Then, I compared with the same merge policy, but wrapped using ConcurrentMergePolicyWrapper. Baseline took 1544 sec to index all of wikipedia; using ConcurrentMergePolicyWrapper it took 1155 sec (25% speedup), which is quite sizable. This is a powerful way to make use of concurrency without the complexity of having to add threads to your indexing process. (This is with JDK 1.5, on a quad core MacPro with 4 drives in a RAID 0 array). > add concurrent merge policy > --------------------------- > > Key: LUCENE-870 > URL: https://issues.apache.org/jira/browse/LUCENE-870 > Project: Lucene - Java > Issue Type: New Feature > Components: Index > Reporter: Steven Parkes > Assignee: Steven Parkes > Attachments: CMP.patch.txt, concurrentMerge.patch, > LUCENE-870.take2.patch > > > Provide the ability to handle merges in one or more concurrent threads, i.e., > concurrent with other IndexWriter operations. > I'm factoring the code from LUCENE-847 for this. -- 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]