Scalable Multiway Stream Joins in Hardware

Mohammadreza Najafi, Mohammad Sadoghi, Hans Arno Jacobsen

Research output: Contribution to journalArticlepeer-review

7 Scopus citations

Abstract

Efficient real-time analytics are an integral part of an increasing number of data management applications, such as computational targeted advertising, algorithmic trading, and Internet of Things. In this paper, we focus primarily on accelerating stream joins, which are arguably one of the most commonly used and resource-intensive operators in stream processing. We propose a scalable circular pipeline design (sf{ Circular\text{-}MJ}Circular-MJ) in hardware to orchestrate a multiway join while minimizing data flow disruption. In this circular design, each new tuple (given its origin stream) starts its processing from a specific join core and passes through all respective join cores in a pipeline sequence to produce the final results. We also present a novel two-stage pipeline stream join (\sf{ Stashed\text{-}MJ}Stashed-MJ) that uses a best-effort buffering technique (referred to as stash) to maintain intermediate results. If an overwrite is detected in the stash, our design automatically resorts to recomputing intermediate results. Finally, we present a parallelized version of our multiway stream join by integrating our proposed pipelines into a parallel unidirectional flow-based architecture (sf{ Parallel\text{-}MJ}Parallel-MJ). Our experimental results demonstrate a linear throughput scaling with respect to the numbers of streams and processing cores.

Original languageEnglish
Article number8713929
Pages (from-to)2438-2452
Number of pages15
JournalIEEE Transactions on Knowledge and Data Engineering
Volume32
Issue number12
DOIs
StatePublished - 1 Dec 2020
Externally publishedYes

Keywords

  • Dataflow architectures
  • hardware architecture
  • multiple data stream architectures
  • pattern matching

Fingerprint

Dive into the research topics of 'Scalable Multiway Stream Joins in Hardware'. Together they form a unique fingerprint.

Cite this