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

SegmentBlob should return null contentIdentity for inlined blobs

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

Details

    Description

      When a external BlobStore is configured with SegmentNodeStore then blob can exist in 3 forms

      1. Blob inlined in segment storage - If blob length is <= 16512 then blob would be inlined in segment store
      2. Blob inlined in BlobStore - Most BlobStore implementation also support inlining of blob content as part of blobId if the size is less than certain threshold. For FileDataStore this is determined by minRecordLength. If this is less than #1 then such a case would not happen
      3. Blob whose content are stored in BlobStore without inlining

      Currently SegmentBlob returns recordId for getContentIdentity call for inlined blobs. This would cause this value to change if same blob is stored in a different segmentstore. As discussed here this causes ambiguity in certain cases.

      Given that getContentIdentity can return null it would be better if SegmentBlob returns null for inlined blob.

      Attachments

        Issue Links

        Activity

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

          People

            chetanm Chetan Mehrotra
            chetanm Chetan Mehrotra
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment