You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2007/04/18 20:14:15 UTC

[jira] Commented: (JCR-851) Handling of binary properties (streams) in QValue interface

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