Index merging should run in a separate thread
---------------------------------------------

         Key: JCR-197
         URL: http://issues.apache.org/jira/browse/JCR-197
     Project: Jackrabbit
        Type: Improvement
  Components: query  
 Environment: svn revision: 239657

    Reporter: Marcel Reutegger
 Assigned to: Marcel Reutegger 
    Priority: Minor
     Fix For: 1.0


Indexes are merged using the configuration parameters mergeFactor and 
minMergeDocs. With the default value of 10 for mergeFactor and 100 for 
minMergeDocs, as soon as 10 index directories exist with less or equal than 100 
nodes they are merged into a single one. This process is then repeated by 
multiplying the minMergeDocs with the mergeFactor. Therefore the second round 
will merge 10 index directories with less or equal than 1000 nodes.

Because the above process is part of the regular workspace store operation an 
index merge with more than let's say 10'000 nodes can block the store operation 
for a couple of seconds. With the current synchronization scheme, all other 
threads are blocked from writing. This is not acceptable.

Index merging should run in a separate thread in the background.

The process needs to take care of the following:
- While merging indexes, deletes on those indexes must not get lost
- Switching between the indexes that are merged and the new index must be atomic
- Recovery if merging is interrupted, e.g. jackrabbit is shutdown

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to