No shard left behind: Dynamic work rebalancing in Apache Beam
summary
Apache Beam implements dynamic work rebalancing in Google Cloud Dataflow by splitting running tasks and reassigning chunks to idle workers, reducing idle time in a 400 VM job and reportedly saving about 55 minutes on a roughly 20-minute baseline run. Runners call APIs like split_at_fraction, get_fraction_consumed and get_backlog_bytes to decide when to split; this enables effective autoscaling (observed scaling from tens to ~1,000 workers) and works in live demos.
AI-written summary · about
chapters (14)
- 0:00Introduction and welcome
- 0:26Apache Beam overview
- 5:10Pipeline variability in production
- 7:25The curse of stragglers
- 11:46Dynamic adaptation philosophy
- 13:14Bundle flexibility in API
- 15:44Source API and splitting
- 18:13Solving stragglers with rebalancing
- 21:03Dynamic work rebalancing in practice
- 22:53Link to auto scaling
- 25:01API for progress tracking
- 27:37Parallelism limits and scaling
- 29:19Apache Beam's unified model
- 30:45Q&A session
related talks
46mBuilding an Apache Beam streaming runtime in GCP
21mPredicting Hacker News with Beam and TensorFlow
04mDBTB INT Eugene Kirpichov r
26mBeam and dataflow: a perfect combination of parallel processing
47mApache Beam - what do I gain?
56mLarge-Scale Distributed Processing in Google Cloud - 7 lessons...
39mApache Beam and Google Cloud DataFlow
24mApache beam and google cloud dataflow
