[ 
https://issues.apache.org/jira/browse/OAK-8552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16916411#comment-16916411
 ] 

Alexander Klimetschek commented on OAK-8552:
--------------------------------------------

To add some context:

In our case that uncovered this issue, the problem really only exists because 
in some special case, we uploaded binaries through JCR with async uploads in 
caching DS enabled, and then immediately after the session.save() requested 
presigned GET URLs to pass them on to an external service. That lead us first 
to make the presigned URL generation support existence check and „polling“ by 
returning null for not-yet-in-blob-store cases. However, that is shifting the 
solution to the wrong end and increasing application complexity (polling loop).

(Also note this edge case is a short term solution to be replaced at some point 
with proper direct binary access for upload)

The source of the problem here is the async upload: we need to switch this to 
synchronous uploads = blocking session.save(), to avoid the issue in the first 
place.

In all regular cases, binaries are uploaded through the new direct binary 
access, which by design guarantees the presence of the binary when the 
reference is in the NodeStore. 

If the binary gets deleted from the blob store due to some malfunctioning, then 
it does not matter to the application if we return null or an URL that returns 
404. But the latter allows us to completely drop any existence checks upon 
presigned GET URL generation.

Same for inlined: configuration must prevent this in the first place, then no 
special check is required at access time.

> Minimize network calls required when creating a direct download URI
> -------------------------------------------------------------------
>
>                 Key: OAK-8552
>                 URL: https://issues.apache.org/jira/browse/OAK-8552
>             Project: Jackrabbit Oak
>          Issue Type: Sub-task
>          Components: blob-cloud, blob-cloud-azure
>            Reporter: Matt Ryan
>            Assignee: Matt Ryan
>            Priority: Major
>         Attachments: OAK-8552_ApiChange.patch
>
>
> We need to isolate and try to optimize network calls required to create a 
> direct download URI.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to