This is a part of work for credit-based network flow control.
Currently PartitionRequestClientHandler receives and reads BufferResponse from producer. It will request buffer from BufferPool for holding the message. If not got, the message is staged temporarily and autoread for channel is set false.
For credit-based mode, PartitionRequestClientHandler can always get buffer from RemoteInputChannel for reading messages from producer.
The related works are:
- Add the backlog of producer in BufferResponse message structure
- PartitionRequestClientHandler requests buffer from RemoteInputChannel directly
- PartitionRequestClientHandler updates backlog for RemoteInputChannel, and it may trigger requests of floating buffers from BufferPool