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

Pablo Rios commented on JCR-926:
--------------------------------

Which is the revision the last version of the binary data store patch should be 
applied to ?

(I would like to have both the old style BLOBStore and the new style DataStore 
implementations co-exist and the clean up of the InternalValue.internalValue() 
method)

The simplest steps that I found to apply the dataStore3.patch was:
- checkout revision 552445 (revision of the files modified by this patch)
- delete org.apache.jackrabbit.core.data package (already exists in revision 
552445)
- make a copy of the file BLOBFileValue.java as BLOBValue.java (can't find the 
file to patch at line 2659)
- apply dataStore3.patch

With the data store feature disabled (org.jackrabbit.useDataStore=false) all 
TCK tests passed, but with this feature enabled 
(org.jackrabbit.useDataStore=true) I got 46 errors and 10 failures.
I suppose these test failures are related with the steps above.

I would like to start contributing testing this feature.



> Global data store for binaries
> ------------------------------
>
>                 Key: JCR-926
>                 URL: https://issues.apache.org/jira/browse/JCR-926
>             Project: Jackrabbit
>          Issue Type: New Feature
>          Components: core
>            Reporter: Jukka Zitting
>         Attachments: dataStore.patch, DataStore.patch, DataStore2.patch, 
> dataStore3.patch, internalValue.patch, ReadWhileSaveTest.patch
>
>
> There are three main problems with the way Jackrabbit currently handles large 
> binary values:
> 1) Persisting a large binary value blocks access to the persistence layer for 
> extended amounts of time (see JCR-314)
> 2) At least two copies of binary streams are made when saving them through 
> the JCR API: one in the transient space, and one when persisting the value
> 3) Versioining and copy operations on nodes or subtrees that contain large 
> binary values can quickly end up consuming excessive amounts of storage space.
> To solve these issues (and to get other nice benefits), I propose that we 
> implement a global "data store" concept in the repository. A data store is an 
> append-only set of binary values that uses short identifiers to identify and 
> access the stored binary values. The data store would trivially fit the 
> requirements of transient space and transaction handling due to the 
> append-only nature. An explicit mark-and-sweep garbage collection process 
> could be added to avoid concerns about storing garbage values.
> See the recent NGP value record discussion, especially [1], for more 
> background on this idea.
> [1] 
> http://mail-archives.apache.org/mod_mbox/jackrabbit-dev/200705.mbox/[EMAIL 
> PROTECTED]

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