Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.16.0, 1.18.0, 1.10.4
-
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
- relates to
-
OAK-7998 [DirectBinaryAccess] Verify that binary exists in cloud before creating signed download URI
- Closed