Hi Matt,

New files in your pull request have a different format for the Apache License header. Can you please change them to match the format of existing source files?

As mentioned in an offline conversion with you already, I'm a bit concerned of the impact this optional feature has on nearly all layers of Oak. SessionImpl implements HttpBinaryProvider, MutableRoot implements HttpBlobProvider, SegmentNodeStore implements HttpBlobProvider, DocumentNodeStore implements HttpBlobProvider. E.g. the last two just pass through calls they are not concerned with.

Alternatively, could you do the required plumbing on construction time? That is, if the BlobStore implements HttpBlobProvider register it with that interface as well and use it to construct the repository. Something like:

BlobStore bs = ...
NodeStore ns = ...
Jcr jcr = new Jcr(ns)
if (bs instanceof HttpBlobProvider)
    jcr.with((HttpBlobProvider) bs)
Repository r = jcr.createRepository()

By default, the Jcr factory would have a HttpBlobProvider implementation that doesn't support the feature, which also relieves the repository implementation from checking the type or for null on every call to the new feature (as is the case in SessionImpl, MutableRoot, DocumentNodeStore, SegmentNodeStore).

I would also prefer if the API used by the client is moved to a separate module that can be release independently. Yes, we don't do this right now in Oak, but this may be a good opportunity to try this again. Releasing the API independently with a stable version lowers the barrier for consumers to adopt it.

Regards
 Marcel

On 21.06.18 01:21, Matt Ryan wrote:
Hi,

A pull request [0] has been submitted containing a proposal for a Direct
Binary Access feature in Oak.  The proposed feature is described at [1].
In a nutshell, it outlines a mechanism by which direct access to binary
data in a cloud-based Oak data store can be made available via signed URLs
with short TTLs.  Such a capability would have a significant positive
impact on Oak scalability.

I’m emailing to request review and discussion based on the proposal.  As
acknowledged in the wiki, there is some similarity to discussions we’ve had
in the past ([2], [3], [4]) but the approach in this proposal is slightly
different.


[0] - https://github.com/apache/jackrabbit-oak/pull/88
[1] - https://wiki.apache.org/jackrabbit/Direct%20Binary%20Access
[2] - https://issues.apache.org/jira/browse/OAK-6575
[3] - https://markmail.org/thread/7eiwvkuv3ybv2vyz
[4] - https://markmail.org/thread/zh6zxdxytnyonqms


Regards,

-MR

Reply via email to