[
https://issues.apache.org/jira/browse/LUCENE-870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steven Parkes updated LUCENE-870:
---------------------------------
Attachment: CMP.patch.txt
Mike expressed interest in pursuing this with an alternative strargey, so I
thought I'd give a "work in progress" snapshot of the way I'd be going.
This code doesn't work, but it has some ideas, so it's only of interest to
people who really want to make suggestions on how to do the parallelization.
Overall, the idea of generating new threads for non-conflicting primitive
merges seems okay. Need to make sure you don't overload the i/o system and that
throttling code isn't in there.
A couple of things things off the top that I haven't worked through yet:
My current thinking is that when you are not going to do a merge serially, you
need to copy the segmentInfo objects that you will be using. It may be possible
to do this with a lock, but that gets harry. Ther'es also state in the
SegmentInfo objescts themselves, like docStoreIsCompoundFile that can get
changed on the fly.
flushDocStore is challenging to parallelize. It's synchronized now, but you
probably would rather it not be? It's complicated by the fact that doc stores
are shared by multiple segments and so non-conflicting merges may stll share
doc stores.
> 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
>
>
> 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]