Lately I’ve been running into an interesting problem. We have a fairly large record based XML tree. We need that tree to act more like a database in that the same tree can be updated by multiple objects, concurrently and safely. The obvious question is why not make it a database. My reasoning for that is this XML changes fairly frequently, and we want to avoid having to convert the schema each time. XML allows us to easily extend the tree with no need to break the existing structure. We’re playing with some solutions, but none of them are far enough along to really discuss yet. However here are our goals:
- Concurrent (or very close) read access of the tree
- Concurrent (or very close) write access of elements in the tree
- Sane persistence of the tree (When a write happens, we don’t lose some other write that was just made)
- Generic enough framework that it can be used for any record based tree. Even better would be any XML tree at all.
- If it’s an existing solution, it must allow non-GPL use (BSD style is ok, or perhaps LGPL) and it must be affordable.
- It must not require external administration, processes, daemons, etc.
Lofty to be sure, but I feel it’s possible, so we’ll see.