Pathfinder: XQuery Compilation Techniques for relational Database Targets
Relational databases are unrivaled when it comes to speed, scalability, and reliability. However, an increasing number of applications demands higher flexibility and a richer data model, which in the early 2000s has spurred an interest in semi-structured data and XML. Powerful languages such as XQuery have been designed to address the application demands.
With Pathfinder we designed an XQuery compiler that brings together the performance of relational engines and the expressiveness of XQuery. Pathfinder shreds XML document into a relational format (using the XPath Accelerator technique), leverages advanced XPath evaluation techniques on such encoded data (such as staircase join), and compiles XQuery into purely relational query plans that fit the strengths of relational execution back-ends.
The technology built into Pathfinder can be combined with any relational database back-end, which we demonstrated with an SQL code generator for the Pathfinder compiler. The primary target of the Pathfinder compiler is, however, the main-memory database engine MonetDB. The combination MonetDB/Pathfinder is also distributed as the open source engine MonetDB/XQuery.
After Jens Teubner left TU München in 2007, the Pathfinder project was continued by Torsten Grust, who is now with U Tübingen. In this continuation, the techniques in Pathfinder have successfully been applied also to other functional languages.
Project Members:
- Peter Boncz (CWI Amsterdam)
- Torsten Grust (now with U Tübingen)
- Martin Kersten (CWI Amsterdam)
- Maurice van Keulen (U Twente)
- Stefan Manegold (CWI Amsterdam)
- Jan Rittinger (PhD graduate, TU München/U Tübingen, now with SAP)
- Jens Teubner
- Ying Zhang (CWI Amsterdam)