Balisage logo

Proceedings

You Pull, I’ll Push: on the Polarity of Pipelines

Michael Kay

Director
Saxonica Limited

Abstract

Pipelines provide an excellent way of structuring XML applications, simplifying complex processing tasks and enabling the reuse of generic components, using a variety of technologies. Efficient pipelines often pass data from one stage to the next as a sequence of events, representing the structure of the tree as a by notifying startElement, endElement and similar transitions.

The control flow in a pipeline can either run with the data flow (push polarity) or against the flow (pull polarity). Performance problems occur when components with different polarity need to be integrated into the same pipeline: traditionally this problem is handled either by buffering the data in memory (leading to scalability problems as well as loss of latency), or by using multiple threads, which introduces coordination overheads.

This paper looks at a different way of managing polarity conflicts, by applying the concepts of program inversion developed during the days of batch magnetic tape data processing. It specifically examines how this concept can be applied to the compilation of XSLT stylesheets, both single and multi-phase.

You Pull, I’ll Push: on the Polarity of Pipelines

Balisage: The Markup Conference 2009
August 11 - 14, 2009

The materials listed below were provided by the speaker as supplements to a presentation at Balisage. These materials may include the slides or visuals used in the presentation; supplementary material, such as code samples or a demonstration application; and/or the paper underlying the presentation (if it has not been provided in XML). These materials have been zipped for easy download and are identified by a brief description of the contents. The materials themselves are “untouched”, that is, they have not been tested or edited by Balisage: The Markup Conference or by Mulberry Technologies, Inc. As such, they are included on this website “AS IS”, i.e., as provided by the speaker, with no warranties, express or otherwise, made by Balisage or Mulberry.

Slides and Materials