17 december 2008

Devoxx 2008 - day 5: XML persistence

The last talk of this year's Devoxx conference that I attended was at bit in the extent of the previous talk: it was about XML persistence. The speaker seems to be a regular "conference closer", because I remember his talk of the last day of last year's Javapolis conference on ESB's and messaging, with a main focus on the finance and banking business.

This talk was related to his talk of last year: how to persist XML messages. I was very interested in this talk, because I have been involved in projects where we had to persist XML messages of dealing room activities. According to his "that was acquired by Oracle" (referring to both TopLink and Tangosol) and "see your license fee doubled", he didn't seem to be very fond of the O-company. He adviced not to opt for vendor specific solutions regarding to XML persistence, but stick to open standards as much as possible.

You don't want to dissect an XML document inito its composing entities and create tables for them. This would lead to a far too scattered relational database model, with joins that fill an entire page and take ages to execute. Relational databases just aren't meant for this purpose. They haven't even evolved with today's needs. To illustrate his statement, he showed a hierarchic representation of a simple swap (dealing room product) modeled in FPML (Financial Products Markup language).  The best way to represent an XML document, is an object. The best way to query XML-documents, is XPath.

His conclusion was a bit surprising, but, given the current technological situation, not such a bad idea: keep everything in memory as much as possible and only persist for archiving purposes. Why? Memory is cheap. A server nowadays comes with at least 32 GB of memory. You can have a cluster of servers, say 20 servers (= 640 GB of RAM, minus the memory required for running applications), keeping all data in memory. Apparently there is an investment bank that keeps all XML messages of dealing room activities of 1 day in memory and only persists the data at the end of the day.

I guess that these servers should somehow be setup redundantly, so that the crash or power failure of a server doesn't lead to a disaster (compare it to RAID-configured disks).

18:30 Gepost door There's more to life than what you see through windows in Javapolis | Permalink | Commentaren (0) | Tags: devoxx08 |  Facebook |

De commentaren zijn gesloten.