This is a part of work for credit-based network flow control.
The related works are :
- We define a new message called AddCredit to notify the incremental credit during data shuffle.
- Whenever an InputChannel’s unannounced credit goes up from zero, the channel is enqueued in the pipeline.
- Whenever the channel becomes writable, it takes the next InputChannel and sends its unannounced credit. The credit is reset to zero after each sent.
- That way, messages are sent as often as the network has capacity and contain as much credit as available for the channel at that point in time. Otherwise, it would only add latency to the announcements and not increase throughput.