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

Minimize network calls in cloud data stores (performance optimization)

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

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.16.0, 1.18.0, 1.10.4
    • 1.20.0
    • None

    Description

      Oak cloud data stores (e.g. AzureDataStore, S3DataStore) are by definition more susceptible to performance degradation due to network issues.  While we can't do much about the performance of uploading or downloading a blob, there are other places within the implementations where we are making network calls to the storage service which might be avoidable or minimized.

      One example is the exists() call to check whether a blob with a particular identifier exists in the blob storage.  In some places exists() is being called where instead we could simply attempt the network access and handle failures elegantly, avoiding making an extra network call.  In other places perhaps a cache could be used to minimize round trips.

      Another example is the higher-level getReference() call in DataStoreBlobStore.  This asks the implementation for a DataRecord and then gets the reference from that, but in truth the data store backend can already obtain a reference for an identifier on its own.  Asking for the DataRecord however requires a network request to get the blob metadata for the record.

      Attachments

        Issue Links

        There are no Sub-Tasks for this issue.

        Activity

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

          People

            mattvryan Matt Ryan
            mattvryan Matt Ryan
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment