Database and XML Technologies

Volume 3186 of the series Lecture Notes in Computer Science pp 35-50

Implementing Memoization in a Streaming XQuery Processor

  • Yanlei DiaoAffiliated withCarnegie Mellon UniversityBEA SystemsUniversity of California at Berkeley
  • , Daniela FlorescuAffiliated withCarnegie Mellon UniversityBEA Systems
  • , Donald KossmannAffiliated withCarnegie Mellon UniversityBEA Systems
  • , Michael J. CareyAffiliated withCarnegie Mellon UniversityBEA Systems
  • , Michael J. FranklinAffiliated withCarnegie Mellon UniversityUniversity of California at Berkeley

* Final gross prices may vary according to local VAT.

Get Access


In this paper, we describe an approach to boosting the performance of an XQuery engine by identifying and exploiting opportunities to share processing both within and across XML queries. We first explain where sharing opportunities arise in the world of XML query processing. We then describe an approach to shared XQuery processing based on memoization, providing details of an implementation that we built by extending the streaming XQuery processor that BEA Systems incorporates as part of their BEA WebLogic Integration 8.1 product. To explore the potential performance gains offered by our approach, we present results from an experimental study of its performance over a collection of use-case-inspired synthetic query workloads. The performance results show that significant overall gains are indeed available.