[ 
https://issues.apache.org/jira/browse/JCR-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489979
 ] 

Jukka Zitting commented on JCR-851:
-----------------------------------

You'll need to have the re-read feature somewhere in any case, so why not put 
it inside the QValue implementation? You don't need to keep the entire value 
inside the QValue instance, just enough information that you can retrieve the 
value when requested.

Leaving the contract as-is allows an implementation for example to decide that 
it'll cache small binaries locally but keep large binaries only on the backend 
server, accessing them only as needed.

> Handling of binary properties (streams) in QValue interface
> -----------------------------------------------------------
>
>                 Key: JCR-851
>                 URL: https://issues.apache.org/jira/browse/JCR-851
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: SPI
>            Reporter: Julian Reschke
>
> The current SPI requires QValue to return new streams upon each call to 
> getStream(). As far as I can tell, this essentially requires a QValue 
> implementation to preserve the whole content of a stream, be it in memory or 
> on disk.
> In particular (and unless I'm missing something), when importing large 
> content into a repository, this causes the whole data stream to be written 
> twice. We really should try to avoid that.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to