System-aware dynamic partitioning for batch and streaming workloads
Zolt\'an Zvara, P\'eter G.N. Szab\'o, Bal\'azs Barnab\'as L\'or\'ant, and Andr\'as A. Bencz\'ur

TL;DR
This paper introduces a lightweight, adaptive dynamic repartitioning module for distributed data processing systems that improves performance on skewed, nonstationary data streams with minimal overhead.
Contribution
It presents a novel on-the-fly dynamic repartitioning method, including the Key Isolator Partitioner, for long-running stateful streaming jobs in systems like Spark and Flink.
Findings
Achieved 1.5-6x speedup on real workloads
Effective handling of skewed, nonstationary key distributions
Minimal overhead during adaptive repartitioning
Abstract
When processing data streams with highly skewed and nonstationary key distributions, we often observe overloaded partitions when the hash partitioning fails to balance data correctly. To avoid slow tasks that delay the completion of the whole stage of computation, it is necessary to apply adaptive, on-the-fly partitioning that continuously recomputes an optimal partitioner, given the observed key distribution. While such solutions exist for batch processing of static data sets and stateless stream processing, the task is difficult for long-running stateful streaming jobs where key distribution changes over time. Careful checkpointing and operator state migration is necessary to change the partitioning while the operation is running. Our key result is a lightweight on-the-fly Dynamic Repartitioning (DR) module for distributed data processing systems (DDPS), including Apache Spark and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCloud Computing and Resource Management · Caching and Content Delivery · IoT and Edge/Fog Computing
