Pipelined, not batched
The exchange moves data as a gRPC stream of row batches, not a file a later stage waits for: a consuming plan executor pulls batches as they become available, and a slow consumer throttles its producer through a byte budget on unread messages rather than letting memory grow without bound. A partition that stops being read — for example the probe side of a hash join whose build side turned out empty — is drained rather than left to stall the budget for every other partition sharing the same connection.What to read next
Distributed Search
How a query gets placed on the query-serving fleet in the first place.
Query plans
Inspect a specific query’s plan and its actual execution metrics.