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

Heuristic method to decide if the document may be a part of the bulk update

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

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • None
    • 1.6.0
    • mongomk, rdbmk
    • None

    Description

      OAK-2066 introduces the bulk createOrUpdate method in the DocumentStore interface and implements it in the Mongo and RDB DSes. Both implementations try to apply the bulk changes in a few iterations. The iteration first reads the current documents and then updates them. If there's a concurrent modification between read and update, it causes a conflict. Such documents will be updated in the next iteration. The documents that can't be updated in a few trials are eventually updated in a sequential way.

      Some documents are more probable to cause a fail than other. Eg. the root document is very likely to be changed by some other process. We could create a list of such "hotspot" documents and exclude them from the bulk updates. The list can be self-maintaining, eg. documents which conflicted in more than 50% cases in the last 1h.

      Attachments

        Issue Links

        Activity

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

          People

            Unassigned Unassigned
            tomek.rekawek Tomek Rękawek
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment