You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Tobias Bocanegra <to...@day.com> on 2007/02/20 15:32:17 UTC

Bundle Persistence Manager

hi,
we (day software) offer our set of bundle persistence managers to the
jackrabbit project. those pms combine the node and property states
into a single bundle and store them together. this improves
performance and reduces storage-memory overhead (no exact numbers
available). The bundle pms also have a "bundle-cache" that does a
memory sensitive caching of the bundles and a negative cache for
non-existent bundles. small binary properties are inlined into the
bundle rather than stored in the blob store.

i created a jira issue for this [JCR-755]
regards, toby

[JCR-755] http://issues.apache.org/jira/browse/JCR-755
-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---

Re: Bundle Persistence Manager

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On 2/20/07, Roy T. Fielding <fi...@gbiv.com> wrote:
> On Feb 20, 2007, at 7:18 AM, Jukka Zitting wrote:
> > 3. Day files a software grant
> > (http://www.apache.org/licenses/software-grant.txt) for the
> > contributed code.
>
> It is sufficient for Day to send an addendum to the existing grant.
>
> In other words, ask David to send email to Jim Jagielski (and cc the
> jackrabbit dev list) that says the additional code also falls under
> our existing grant agreement.  While he is doing that, he should also
> add the names of our new employees to the Day CCLA.

OK, good.

> > PS. We should have done this already when the SPI codebase was
> > introduced. The ASF board noted about this, but the issue was not
> > critical enough to require after-the-fact actions. In any case we
> > should do things by the book this time.
>
> I thought we did.  David Nuescheler sent his message to this list
> saying that it was a contribution under the existing CCLA, and that
> is sufficient for Apache legal.  David is the official contact.

OK, so that's cleared. Thanks.

BR,

Jukka Zitting

Re: Bundle Persistence Manager

Posted by "Roy T. Fielding" <fi...@gbiv.com>.
On Feb 20, 2007, at 7:18 AM, Jukka Zitting wrote:
> 3. Day files a software grant
> (http://www.apache.org/licenses/software-grant.txt) for the
> contributed code.

It is sufficient for Day to send an addendum to the existing grant.

In other words, ask David to send email to Jim Jagielski (and cc the
jackrabbit dev list) that says the additional code also falls under
our existing grant agreement.  While he is doing that, he should also
add the names of our new employees to the Day CCLA.

> PS. We should have done this already when the SPI codebase was
> introduced. The ASF board noted about this, but the issue was not
> critical enough to require after-the-fact actions. In any case we
> should do things by the book this time.

I thought we did.  David Nuescheler sent his message to this list
saying that it was a contribution under the existing CCLA, and that
is sufficient for Apache legal.  David is the official contact.

....Roy


Re: Bundle Persistence Manager

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On 2/20/07, Tobias Bocanegra <to...@day.com> wrote:
> we (day software) offer our set of bundle persistence managers to the
> jackrabbit project. those pms combine the node and property states
> into a single bundle and store them together. this improves
> performance and reduces storage-memory overhead (no exact numbers
> available). The bundle pms also have a "bundle-cache" that does a
> memory sensitive caching of the bundles and a negative cache for
> non-existent bundles. small binary properties are inlined into the
> bundle rather than stored in the blob store.

Excellent, this will be a welcome addition to Jackrabbit!

With my PMC chair hat on:

Since this is a codebase that has been in development outside the ASF,
we need to follow the IP clearance process described in
http://incubator.apache.org/ip-clearance/. The exact steps to follow
are:

1. You attach the contributed code in JCR-755 (preferably as a single
file so we can use a MD5 or SHA1 checksum to accurately refer to it)

2. You call a vote for the Jackrabbit PMC to accept the contribution
(this is required to ensure that the PMC is committed to taking over
the maintenance of the codebase)

3. Day files a software grant
(http://www.apache.org/licenses/software-grant.txt) for the
contributed code.

4. The ASF Secretary acknowledgest the grant.

5. I fill in the the IP clearance form and call a vote for the
Incubator PMC to check and accept the clearance.

6. Once accepted, I'll notify you of the green light to proceed.

7. You resolve JCR-755 by adding the contributed code to the
Jackrabbit codebase.

Let me know if you need help with any of the procedural details.

We should apply the same process also to the packaging codebase for JCR-733.

PS. We should have done this already when the SPI codebase was
introduced. The ASF board noted about this, but the issue was not
critical enough to require after-the-fact actions. In any case we
should do things by the book this time.

BR,

Jukka Zitting

Bundle Persistence Manager

Posted by Tobias Bocanegra <to...@day.com>.
hi martjin,
i'm aware of some of those bugs. and will shortly fix them. i tested
with derby and H2 and those seem to work.

however, i would be happy if we could contribute the pms and fix the
bugs afterwards, once the code is committed to jackrabbit. otherwise
we would have to create a new patch and probably have a new vote.

regards, toby

On 2/21/07, Martijn Hendriks <ma...@gx.nl> wrote:
> Hi,
>
> These bundle PMs look great! They indeed offer a very significant
> performance improvement.  I have encountered, however, some minor issues:
>
> Using some configuration options in the repository.xml fails (at least
> externalBLOBs, minBlobSize). It seems that these are not considered bean
> properties because the getter and setter methods do not completely match
> (setter uses String while the getter returns boolean or int respectively).
>
> I first tried the MySQL PM. This did not work because an abstract method is
> called:
>
> Caused by: java.lang.AbstractMethodError:
> com.inet.tds.e.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatem
> ent;
>         at
> org.apache.jackrabbit.core.persistence.bundle.util.DbNameIndex.init(DbNameIn
> dex.java:72)
>         at
> org.apache.jackrabbit.core.persistence.bundle.util.DbNameIndex.<init>(DbName
> Index.java:58)
>         at
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.cre
> ateDbNameIndex(BundleDbPersistenceManager.java:566)
>         at
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.get
> NameIndex(BundleDbPersistenceManager.java:551)
>         at
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.ini
> t(BundleDbPersistenceManager.java:515)
>         at
> org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager.init(M
> SSqlPersistenceManager.java:60)
>         at
> org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(Repositor
> yImpl.java:1190)
>         at
> org.apache.jackrabbit.core.RepositoryImpl.createVersionManager(RepositoryImp
> l.java:369)
>         at
> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:282)
>         at
> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:588)
>
> I used the Una JDBC driver; should I use the Microsoft driver instead?
>
> Then I tried the Oracle PM. This also failed because the methods
> "store(NodeReferences)" and "store(NodePropBundle)" (both in the
> BundleDbPersistenceManager) failed (the serialized data does not fit into
> the column). The solution to this seems to override these methods in the
> OraclePersistenceManager (for bundles) using the same blob-handling code as
> used in the regular OraclePersistenceManager. I tried that, and it worked
> fine.
>
> Regards,
>
> Martijn Hendriks
> <GX> creative online development B.V.
>
> t: 024 - 3888 261
> f: 024 - 3888 621
> e: martijnh@gx.nl
>
> Wijchenseweg 111
> 6538 SW Nijmegen
> http://www.gx.nl/
>
> > -----Original Message-----
> > From: tobias.strasser@gmail.com
> > [mailto:tobias.strasser@gmail.com] On Behalf Of Tobias Bocanegra
> > Sent: Tuesday, February 20, 2007 3:32 PM
> > To: dev@jackrabbit.apache.org
> > Subject: Bundle Persistence Manager
> >
> > hi,
> > we (day software) offer our set of bundle persistence
> > managers to the jackrabbit project. those pms combine the
> > node and property states into a single bundle and store them
> > together. this improves performance and reduces
> > storage-memory overhead (no exact numbers available). The
> > bundle pms also have a "bundle-cache" that does a memory
> > sensitive caching of the bundles and a negative cache for
> > non-existent bundles. small binary properties are inlined
> > into the bundle rather than stored in the blob store.
> >
> > i created a jira issue for this [JCR-755] regards, toby
> >
> > [JCR-755] http://issues.apache.org/jira/browse/JCR-755
> > --
> > -----------------------------------------<
> > tobias.bocanegra@day.com >--- Tobias Bocanegra, Day
> > Management AG, Barfuesserplatz 6, CH - 4001 Basel T +41 61
> > 226 98 98, F +41 61 226 98 97
> > -----------------------------------------------<
> > http://www.day.com >---
>
>


--
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---