Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 37082 invoked from network); 6 Jul 2007 17:40:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Jul 2007 17:40:27 -0000 Received: (qmail 44084 invoked by uid 500); 6 Jul 2007 17:40:29 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 43854 invoked by uid 500); 6 Jul 2007 17:40:28 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 43844 invoked by uid 99); 6 Jul 2007 17:40:28 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jul 2007 10:40:28 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jul 2007 10:40:24 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 91F717141EB for ; Fri, 6 Jul 2007 10:40:04 -0700 (PDT) Message-ID: <25056857.1183743604577.JavaMail.jira@brutus> Date: Fri, 6 Jul 2007 10:40:04 -0700 (PDT) From: "Pablo Rios (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Issue Comment Edited: (JCR-926) Global data store for binaries In-Reply-To: <10437621.1179313816120.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510515 ] Pablo Rios edited comment on JCR-926 at 7/6/07 10:38 AM: --------------------------------------------------------- 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 Both with the data store feature disabled (org.jackrabbit.useDataStore=false) and with this feature enabled (org.jackrabbit.useDataStore=true) all TCK tests passed using maven (mvn test). For some reasons I don't know yet, running these tests with the data store enabled within Eclipse IDE, I occasionally got 46 errors and 10 failures. I would like to start contributing testing this feature. was: 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, dataStore4.zip, 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/%3c510143ac0705120919k37d48dc1jc7474b23c9f02cbd@mail.gmail.com%3e -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.