STRETCH: Virtual Shared-Nothing Parallelism for Scalable and Elastic Stream Processing

11/25/2021
by   Vincenzo Gulisano, et al.
0

Stream processing applications extract value from raw data through Directed Acyclic Graphs of data analysis tasks. Shared-nothing (SN) parallelism is the de-facto standard to scale stream processing applications. Given an application, SN parallelism instantiates several copies of each analysis task, making each instance responsible for a dedicated portion of the overall analysis, and relies on dedicated queues to exchange data among connected instances. On the one hand, SN parallelism can scale the execution of applications both up and out since threads can run task instances within and across processes/nodes. On the other hand, its lack of sharing can cause unnecessary overheads and hinder the scaling up when threads operate on data that could be jointly accessed in shared memory. This trade-off motivated us in studying a way for stream processing applications to leverage shared memory and boost the scale up (before the scale out) while adhering to the widely-adopted and SN-based APIs for stream processing applications. We introduce STRETCH, a framework that maximizes the scale up and offers instantaneous elastic reconfigurations (without state transfer) for stream processing applications. We propose the concept of Virtual Shared-Nothing (VSN) parallelism and elasticity and provide formal definitions and correctness proofs for the semantics of the analysis tasks supported by STRETCH, showing they extend the ones found in common Stream Processing Engines. We also provide a fully implemented prototype and show that STRETCH's performance exceeds that of state-of-the-art baselines (Apache Flink and ScaleJoin) and offers, to the best of our knowledge, unprecedented ultra-fast reconfigurations, taking less than 40 ms even when provisioning tens of new task instances.

READ FULL TEXT
research
07/24/2023

MorphStream: Scalable Processing of Transactions over Streams on Multicores

Transactional Stream Processing Engines (TSPEs) form the backbone of mod...
research
03/01/2023

On the Semantic Overlap of Operators in Stream Processing Engines

Stream processing is extensively used in the IoT-to-Cloud spectrum to di...
research
04/08/2019

Scaling Stream Processing with Transactional State Management on Multicores

Transactional state management relieves users from managing state consis...
research
03/30/2018

Scaling Ordered Stream Processing on Shared-Memory Multicores

Many modern applications require real-time processing of large volumes o...
research
04/07/2019

BriskStream: Scaling Data Stream Processing on Shared-Memory Multicore Architectures

We introduce BriskStream, an in-memory data stream processing system (DS...
research
11/09/2021

DataX: A system for Data eXchange and transformation of streams

The exponential growth in smart sensors and rapid progress in 5G network...
research
04/18/2019

Memory and Parallelism Analysis Using a Platform-Independent Approach

Emerging computing architectures such as near-memory computing (NMC) pro...

Please sign up or login with your details

Forgot password? Click here to reset