Path sharing and predicate evaluation for high-performance XML filtering

  • Authors:
  • Yanlei Diao;Mehmet Altinel;Michael J. Franklin;Hao Zhang;Peter Fischer

  • Affiliations:
  • University of California, Berkeley, Berkeley, California;IBM Almaden Research Center, San Jose, California;University of California, Berkeley, Berkeley, California;University of California, Berkeley, Berkeley, California;University of Heidelberg, Heidelberg, Germany

  • Venue:
  • ACM Transactions on Database Systems (TODS)
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

XML filtering systems aim to provide fast, on-the-fly matching of XML-encoded data to large numbers of query specifications containing constraints on both structure and content. It is now well accepted that approaches using event-based parsing and Finite State Machines (FSMs) can provide the basis for highly scalable structure-oriented XML filtering systems. The XFilter system [Altinel and Franklin 2000] was the first published FSM-based XML filtering approach. XFilter used a separate FSM per path query and a novel indexing mechanism to allow all of the FSMs to be executed simultaneously during the processing of a document. Building on the insights of the XFilter work, we describe a new method, called "YFilter" that combines all of the path queries into a single Nondeterministic Finite Automaton (NFA). YFilter exploits commonality among queries by merging common prefixes of the query paths such that they are processed at most once. The resulting shared processing provides tremendous improvements in structure matching performance but complicates the handling of value-based predicates.In this article, we first describe the XFilter and YFilter approaches and present results of a detailed performance comparison of structure matching for these algorithms as well as a hybrid approach. The results show that the path sharing employed by YFilter can provide order-of-magnitude performance benefits. We then propose two alternative techniques for extending YFilter's shared structure matching with support for value-based predicates, and compare the performance of these two techniques. The results of this latter study demonstrate some key differences between shared XML filtering and traditional database query processing. Finally, we describe how the YFilter approach is extended to handle more complicated queries containing nested path expressions.