Latest Posts

Archives [+]

Categories [+]

Authors [+]

JCR or RDBMS? An essay by Bertil Chapuis

You can guess - we hear this question popping up quite often.

Last year we had Bertil Chapuis in the house and we let him dig deep into the topic. He summarized his findings in a paper he recently published for this diploma at the Université den Lausanne.

While reading - I found these quotes nicely expressing differences:

Houses are rarely built from scratch without blueprints. Cities, however, usually evolve organically, without detailed blueprints....The JCR model clearly promotes a data-driven structure, without extraneous blueprints.

and..

The choice of the best approach should be made with regard to the responsibility given to the DBA and to the application programmer....on one hand, a prison guardian must control all the prisoner's movements...a tourist guide, on the other hand, has to ensure that the travelers have a good trip by directing them and giving them the right information. Do users have to be guarded or guided?

without further ado:

We at Day Software thank Bertil for allowing us to publish his work and wish him all the best for the future.

Update: Here's a link for downloading the report without having to login at Scribd

 
(optional)
3 comments
JCR is an Object database, I don't the point to make benchmarks of MySQL storing objects. A RDBMS hasn't been built to do that. Use the right tool for the right purpose. This doesn't show that JCR is better than MySQL, just that is does something different.

So, yes, maybe if you have to use MPTT you're trying to do something using the wrong tool (i.e. a RDBMS).

I still have to go through that more seriously, but was quite surprised by the benchmarks (btw you should mention which version of software you are using, for h2, crx, mysql, derby, ...)
0 Replies » Reply
Yoan,
Bertil's work is exactly about "Use the right tool for the right purpose". He's trying to figure out what is the right tool under what circumstances.
Re the performance analysis: the summary says:
"As shown in this chapter, performance should not be used as the main argument to choose one technology over another."
My understanding is that he has shown performance to be similar enough between a JCR implementation and a couple of RDBMSs.
I agree with you that the persistence engines that were used should have been mentioned.
Cheers
Michael
0 Replies » Reply
This is a fantastic read!

Something really striked me: in JCR, the model is directly mapped into the API (nodes, properties, etc). This makes using JCR imho way simpler and more intuitive than programming vs. a RDBMS model.
0 Replies » Reply