[
https://issues.apache.org/jira/browse/JCR-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489845
]
Jukka Zitting commented on JCR-851:
-----------------------------------
In most cases, especially when working with large binaries, the client will not
try to read the stream from transient space when storing the binary in the
repository. Thus a reasonable SPI implementation would stream (large) binaries
to the backend server already during QValueFactory.create(InputStream) and use
internal of identifiers to keep track of the values.
Just like with the normal JCR ValueFactory interface, the most reasonable
implementation is to consume the entire InputStream when the create() method is
called instead of lazily keeping just the reference.
> 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.