How it works
Why does it behave this way?
- 1
Three idlenesses
Why is elapsed time not "work divided by capacity", and what are the only three reasons a machine sits idle?
- 2
Inside one worker
What does it cost to hand a row from one operator to the next?
3 pages - 3
Across machines
When the handoff costs milliseconds and can fail, how do you choose an execution model?
2 pages - 4
Where parallelism comes from
Why does adding cores stop helping, and what is the ceiling for data, pipeline and task parallelism?
2 pages - 5
Skew and elasticity
What do you do when one piece of work is simply too big, and when does adding machines mid-query pay off?
- 6
The shuffle
Why does moving rows between stages cost a product of two widths, and what governs that cost?
4 pages