[
https://issues.apache.org/jira/browse/OAK-5238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15731586#comment-15731586
]
Chetan Mehrotra edited comment on OAK-5238 at 12/8/16 8:55 AM:
---------------------------------------------------------------
bq. Maybe the IndexCopier could create the blob asynchronously and then update
the node builder while holding a lock?
Yes but then also blob related metadata needs to be held in memory. Or we have
some sync points with main indexing thread where LuceneIndexEditor does a
callback on OakDirectory to push the changes for e.g. in
DefaultIndexWriter#updateDocument call
was (Author: chetanm):
bq. Maybe the IndexCopier could create the blob asynchronously and then update
the node builder while holding a lock?
Yes but then also blob data needs to be held in memory. Or we have some sync
points with main indexing thread where LuceneIndexEditor does a callback on
OakDirectory to push the changes for e.g. in DefaultIndexWriter#updateDocument
call
> IndexCopier causes concurrent update on NodeBuilder
> ---------------------------------------------------
>
> Key: OAK-5238
> URL: https://issues.apache.org/jira/browse/OAK-5238
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: lucene
> Affects Versions: 1.2.3, 1.0.15, 1.4.0
> Reporter: Marcel Reutegger
> Assignee: Marcel Reutegger
> Labels: candidate_oak_1_4
> Fix For: 1.6
>
> Attachments: OAK-5238.patch
>
>
> OAK-2247 introduced the copy-on-write feature for lucene index in Oak. This
> feature may result in a NodeBuilder updated by multiple threads concurrently.
> New index files are first stored on the local filesystem and then copied
> asynchronously into the repository. At the same time the async index update
> thread manipulates the node builders as well.
> With MongoMK this results in unexpected conflicts and failed async index
> updates.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)