You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2013/11/25 10:45:37 UTC

[jira] [Resolved] (OAK-1202) Retry Persisted merge

     [ https://issues.apache.org/jira/browse/OAK-1202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marcel Reutegger resolved OAK-1202.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.12

Done in revision http://svn.apache.org/r1545190

- Introduced a MERGE type in CommitFailedException to distinguish it from other commit failures
- Make sure KernelNodeStoreBranch throws appropriate exceptions on failures
- Leverage MicroKernel.reset() when Persisted.merge() fails
- Introduced a new branch state ResetFailed when the branch cannot be reset
- Moved the retry logic to AbstractNodeStoreBranch
- Removed the now duplicate retry logic in MongoNodeStoreBranch

> Retry Persisted merge
> ---------------------
>
>                 Key: OAK-1202
>                 URL: https://issues.apache.org/jira/browse/OAK-1202
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, mk, mongomk
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>             Fix For: 0.12
>
>
> This is similar to OAK-1198, but for the {{Persisted}} state in {{AbstractNodeStoreBranch}}. OAK-1186 describes a case when a retry of a {{Persisted}} merge would help to overcome a conflict.
> Compared to OAK-1198, the situation is a bit more difficult. The {{Persisted.merge()}} method performs the following actions:
> # rebase the branch
> # run commit hook on the branch
> # persist changes introduced by hook to the branch
> # merge the branch
> The problem with the current implementation is that it cannot be retried if the conflict is introduced by the commit hook and is only detected in step 4) when the branch is merged. It is currently not possible to efficiently reset the branch to a previous state. This missing feature also blocks OAK-1056.



--
This message was sent by Atlassian JIRA
(v6.1#6144)