[
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.