Friday, August 22, 2008

Gotta have 'em XML databases

I am quite puzzled that there is still not enough of a buzz about native XML databases. I come across more and more situations where it would be such a natural fit for modern SOA environments which speak XML all around.


After reading a bit about Oracle's XML support here and there, I wanted to look around for other less 'hybrid' options, preferably with the ability to embed in-process for better performance. I found the eXist database. It seems to be fairly easy to use and appears to be well integrated with the Cocoon CMS framework as a marketable use case.

I was ready to move past the hello world stage when I came across this nice article on developerworks from a couple of years ago, which recommended Oracle's open source Berkeley DbXML and warned that eXist may not be suitable for large volumes of data. This was corroborated by an IEEE paper that clearly showed DbXML to be superior in performance.

Intending to do some harmless flirting with DbXML, I downloaded the full Windows package and was pleasantly surprised to see tons of professional looking documentation (Not being used to anything much more than a few wikis and javadocs). The unpleasantness started when I realized that I have to run a build to get it installed. It unexpectedly asks for Visual Studio to build itself, and after several minutes of busy work in VS5, it failed on me with an unhelpful 'blah not found' type message.


Relieved to find a convenient windows 'msi' installer option which I had missed earlier, I thought I had it made, except the source was compiled to only be backward compatible till jdk5. I actually need to work jdk 1.4, so I have to keep messing with the manual build options.

Another alternative is to run Cygwin and use the UNIX installation script, but even after getting the make and gcc tools, the script is failing. For now I am going to build my proof of technology on jdk5, and if we decide to implement this bad boy, I will have to pursue this further.

1 comment:

Ankur Mathur said...

We eventually stayed with the regular Oracle 10g DB and leveraged its XMLType support, which turned okay in the end.