Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
ghx-label-7
Description
Exchange nodes assign a fixed-size buffer to their datastream receivers that's used to smooth out differences in send / consume rates between the sender and the receiver.
These buffers should be tracked by the query memtracker, and with the new min-reservation support we should allow them to be larger than the configured minimum. Increasing the buffer size decreases the amount of time that a sender can be blocked on a receiver, and so increases query-parallelism. Queries that shuffle a lot of data can see significant speedups from larger buffers.
The buffers need to be sized based on the #senders and the #rows * #avg row size. They can dynamically expand trivially - contraction is possible, but a bit harder.
Attachments
Issue Links
- depends upon
-
IMPALA-5832 Simplify the backend's memory ownership and transfer model
- Open
- is depended upon by
-
IMPALA-4834 All operators should operate within a memory constraint
- Open
- relates to
-
IMPALA-6524 Sender and receiver side of exchange should operate within memory constraint
- Open