An Injection with Tree Awareness: Adding Staircase Join to PostgreSQL
Title
An Injection of Tree Awareness: Adding Staircase Join to PostgreSQL
Authors
Sabine Mayer, Torsten Grust, Maurice van Keulen, and Jens Teubner
Published
Proceedings of the 30th Int'l Conference on Very Large Data Bases (VLDB)
Download
Abstract
The syntactic wellformedness constraints of XML (opening and closing tags nest properly) imply that XML processors face the challenge to efficiently handle data that takes the shape of ordered, unranked trees.
Although RDBMSs have originally been designed to manage table-shaped data, we propose their use as XML and XPath processors. In our setup, the database system employs a relational XML document encoding, the XPath accelerator, which maps information about the XML node hierarchy to a table, thus making it possible to evaluate XPath expressions on SQL hosts.
Conventional RDBMSs, nevertheless, remain ignorant of many interesting properties of the encoded tree data, and were thus found to make no or poor use of these properties. This is why we devised a new join al- gorithm, the staircase join, which incorporates the tree-specific knowledge required for an efficient SQL-based evaluation of XPath expressions.
In a sense, this demonstration delivers the promise we have made at VLDB 2003: a notion of tree awareness can be injected into a conventional disk-based RDBMS kernel in terms of staircase join. The demonstration features a side-by-side comparison of both, an original and a staircase join-enhanced instance of PostgreSQL. The required changes to PostgreSQL were local, the achieved effect, however, is significant: the demonstration proves that this injection of tree awareness turns PostgreSQL into a high-performance XML processor that closely adheres to the XPath semantics.