Partial Key Grouping: Load-Balanced Partitioning of Distributed Streams
We study the problem of load balancing in distributed stream processing engines, which is exacerbated in the presence of skew. We introduce Partial Key Grouping (PKG), a new stream partitioning scheme that adapts the classical "power of two choices" to a distributed streaming setting by le...
Gespeichert in:
Hauptverfasser: | , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | We study the problem of load balancing in distributed stream processing
engines, which is exacerbated in the presence of skew. We introduce Partial Key
Grouping (PKG), a new stream partitioning scheme that adapts the classical
"power of two choices" to a distributed streaming setting by leveraging two
novel techniques: key splitting and local load estimation. In so doing, it
achieves better load balancing than key grouping while being more scalable than
shuffle grouping.
We test PKG on several large datasets, both real-world and synthetic.
Compared to standard hashing, PKG reduces the load imbalance by up to several
orders of magnitude, and often achieves nearly-perfect load balance. This
result translates into an improvement of up to 175% in throughput and up to 45%
in latency when deployed on a real Storm cluster. PKG has been integrated in
Apache Storm v0.10. |
---|---|
DOI: | 10.48550/arxiv.1510.07623 |