Thursday, 10 June 2010

Native XML DB: Sedna

My choice is Sedna. eXist doesn't seem to be effecient enough.

Some motivation:
  • C++
  • Russian Academy of Sciences
  • List of authors' publications - I respect algebraic approach.
  • Full transaction support
  • Solaris/BSD/Linux/Win
  • active development, active community

Some links:

Unfortunately I lost a link to newer performance analysis using XMLish data, as I remember it was on part with MySQL. Please share it with me if you find it.

Oracle

Yes, latest Oracle has quite interesting XML database implementation with automatic shredding of XML into tables (in case of schema available) using its in-database objects support (kind of ORM if you want). But you need a schema (not always available), can't estimate XQuery performance. And also you need to give them money :) Actually Oracle would be very interesting for a database mixing classical relational things and XML - if you need links between & etc.

One situation when Oracle is perfect - your client is a relational freak with bunch of money. And you need XML database and that money.

But finally I choose Sedna.

My experience

In case of far not the fastest request doing substring search on a big collection Sedna produces data much faster and with much lower memory usage than Cocoon 3 parses and processes.

API

Sedna has own JDBC-like API.
Charles Foster built XQJ and XML:DB wrappers on top of it.

I use Sedna own API as I want to get maximum performance. Currently I started to implement Spring 3 wrapper around following Spring JDBC wrapper template. I use it in Cocoon3 components. Some day I will share it as when I am satisfied with its quality.

2 comments:

  1. Hi Andrei

    Most inspiring and intriguing ideas about XML databases!

    I think you've not finished your following sentence "And you XML database and that money." ?

    ReplyDelete
  2. …did you try BaseX (basex.org) as well?

    ReplyDelete