Tuesday, January 29, 2013

A human-readable jackrabbit persistence manager prototype for orientdb

After working with jackrabbit for a while, I still and always wondered about the database persistence managers that jackrabbit provides. Storing the node serialized in a blob always seemed like a little perversion when using he concepts of a database.

Some while ago I just thought wether I could do that in a more "database" way. The idea was to use orientdb, as it stores documents (nodes) as well as a graph (the jcr tree). Jut to see if I can do it, I wrote a functional, test-passing prototype that stores the node in a human readable orientdb document, and persists the child relations as edges in the graph.

This has some limitations, as jackrabbit will still access only one node at a time, being able to traverse the graph at the storage level is simply not intended by the whole api. But it works, it's readable, can be modified at the db level easily.

You can grab the code at https://github.com/eiswind/jackrabbit-orient

1 comment:

Anonymous said...

Great idea! Are you aware of the oak project@ http://jackrabbit.apache.org/oak/? This is the next-gen jackrabbit, webscale and stuff, and afaik currently relies on mongodb for persistence.