IBM DB2 "Viper" revs XML engine

Upcoming release of IBM database promises a richer XML experience

Code-named "Viper" and due for release in early summer, will be more worthy of its “Universal Database” tagline than previous versions. Not only does Viper contain an extensive list of enhancements that cover everything from security and development to storage and administration, but topping the list is a newly integrated XML storage engine that Big Blue says will put Microsoft and Oracle to shame.

The addition of the native XML engine makes XML a separate but equal partner to relational data in DB2. Whereas the Microsoft and Oracle databases use structured CLOBs (Character Large Objects) to store XML documents, IBM uses a new storage format that the company says better suits the complexities of XML data storage and retrieval. The IBM scheme is actually a parallel data storage manager that parses XML data into a hierarchical format that, unlike CLOBs, supports native XML querying without degrading performance, according to IBM. The company claims the separate XML storage engine gives Viper a performance increase of anywhere between 2 and 7 times over Microsoft SQL Server and Oracle Database.

Along with the new engine comes a supporting cast of other features that is sure to please hardcore developers. An XQuery builder helps you create queries against XML data; and Control Center, Visual Explain, db2look, and CLP (command line processor) have all been enhanced to support the management of XML data. IBM has also developed all new index structures for dealing with the new XML model.

DB2 Viper is the first database to offer row-level compression, although “row level” is a misnomer. The data isn’t compressed at the row level at all, but at the table level. Regardless of how it is named, the new compression method translates into direct storage savings at an average ratio of 45 to 75 percent, depending on the data type. To test this, I created a 40GB table (approximately 500 million rows) with mixed numeric and text data, exported it to a text file, and then imported it into a compressed table format. The size of the compressed table was about 17.75GB -- a savings of 56 percent.

Further, compression seems to have little impact on performance. I created a small benchmark to try to capture the difference between compressed and uncompressed operations, and the results came out very close. In fact, the compressed data actually performed a little better. However, my test comes nowhere close to an actual enterprise performance benchmark, so you should test against your own data. Nevertheless, this feature looks quite promising. The compressed tables can even be indexed.

Another key feature is table partitioning, which allows you to separate data for either storage or performance reasons. You can partition tables based on any number of selected columns across as many storage containers as you need. Viper even allows you to perform maintenance tasks on individual partitions to decrease the stress on your production system.

DB2 Viper is a significant release that current DB2 users will welcome. Table partitioning will make life easier for many DBAs, and row-level compression is a revolutionary development that will leave Oracle and Microsoft green with envy. The new XML storage engine and supporting components offer a much richer and more flexible development and administration environment than ever before. Even if Viper’s XML capabilities don’t end up shaming the competition, they are certainly a boon to IBM customers and a feather in IBM’s cap.

IBM DB2 “Viper”

IBM

Cost: TBD

Platforms: Linux, Unix, Windows, z/OS

Available: Summer

Bottom Line: The Viper release incorporates an XML storage engine and support for XQuery, making DB2 a truly hybrid relational and native XML database. Other important enhancements include table partitioning, storage-saving compression, and column-level labeling that enables fine-grained access control over sensitive data

Join the discussion
Be the first to comment on this article. Our Commenting Policies