Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-3042

Suspend commit on conflict

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.3.6, 1.4
    • core, mongomk

    Description

      A DocumentNodeStore cluster currently shows a conflict behavior, which
      is not intuitive. A modification may fail with a conflict even though
      before and after the conflict, the external change is not visible to
      the current session. There are two aspects to this issue.

      1) a modification may conflict with a change done on another cluster
      node, which is committed but not yet visible on the current cluster node.

      2) even after the InvalidItemStateException caused by the conflict, a
      refreshed session may still not see the external change.

      The first aspect is a fundamental design decision and cannot be changed
      easily.

      The second part can be addressed by suspending the commit until the external
      conflict becomes visible on the current cluster node. This would at least
      avoid the awkward situation where the external change is not visible after
      the InvalidItemStateException.

      The system would also become more deterministic. A commit currently goes
      into a number of retries with exponential back off, but there's no guarantee
      the external modification becomes visible within those retries.

      Attachments

        1. commit-graph.png
          119 kB
          Marcel Reutegger
        2. OAK-3042.patch
          38 kB
          Marcel Reutegger
        3. commit-graph-patched.png
          86 kB
          Marcel Reutegger
        4. OAK-3042.patch
          48 kB
          Marcel Reutegger

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            mreutegg Marcel Reutegger
            mreutegg Marcel Reutegger
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment