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

FileDataStore inUse map causes contention in concurrent env

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

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.1.8
    • Component/s: core
    • Labels:

      Description

      JR2 FileDataStore#inUseMap [1] is currently a synchronized map and that at times causes contention concurrent env. This map is used for supporting the Blob GC logic for JR2.

      With Oak this map content is not used. As a fix we can either

      1. Set inUseMap to a Guava Cache Map which has weak keys and value
      2. Set inUseMap to a no op map where all put calls are ignored
      3. Modify FDS to disable use of inUseMap or make usesIdentifier protected

      #3 would be a proper fix and #2 can be used as temp workaround untill FDS gets fixed

      [1] https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java#L118

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              chetanm Chetan Mehrotra
              Reporter:
              chetanm Chetan Mehrotra

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment