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