Extend the backpressure mechanism
so that a ContainerWorker can request all ShuffleServers to stop sending shuffle requests.
A new configuration key tez.shuffle.max.block.requests.thread.multiple
specifies the threshold for the total number of active shuffle requests that triggers backpressure.
A LogicalInput can use a multiple of memory allocated to each Task for storing shuffle input data.
A new configuration key tez.runtime.free.memory.factor.for.fetched.input
specifies a multiplier used in calculating the total amount of free memory
for storing shuffle input data.
Implement streaming mode for unordered shuffle,
which completely eliminates writes to local disks.
Set the new configuration key tez.runtime.shuffle.unordered.memory.streaming to true
to enable streaming mode for unordered shuffle.