Speculative Out-Of-Order Event Processing with Software Transactional Memory
Andrey Brito and Christof Fetzer and Heiko Sturzrehm and Pascal Felber
Appeared in: Proceedings of the Second Conference on Distributed Event-Based Systems
Date: July 2008

Download: PRESENTATION SLIDES
Download: BIBTEX (brito2008debs)
In event stream applications, events flow through a network of components that perform various types of operations, e.g., filtering, aggregation, transformation. When the operation only depends on the input events, one can trivially parallelize its processing by replicating the associated components. This is not possible, however, with stateful components or when there exist dependencies between the events. Parallel versions of a number of simple stream mining operators have been designed, but, in general, complex and user-defined operators are limited by single thread performance. In this paper, we propose leveraging the processing capabilities of multi-core processors to improve the efficiency of stateful components using optimistic parallelization techniques (as provided by transactional memory). We show that, even though some speculative event executions might need to be disregarded, the overall throughput increases noticeably in the general case and latency can be reduced by pre-processing out-of-order events. Moreover, we show how simple conflict predictors can boost the parallelism even more and reduce the amount of resources used for a given level of parallelism.