dawidwys commented on pull request #17440:
URL: https://github.com/apache/flink/pull/17440#issuecomment-945629976
Another idea to throw into the mix:
Why do we even have the methods like: `notifyCreditAvailable`,
`notifyNewBufferSize`, `resumeConsumption` and `acknowledgeAllRecordsProcessed`
in the `NetworkClientHandler`. It seems to me those methods go against the
purpose of `ChannelHandler` in netty. As far as I understand them, they are
supposed to be reactive components that act on a certain event happening in the
network stack. That is not the case with the aforementioned methods.
On the other hand we have the `NettyPartitionRequestClient`, which is an
active client of the network stack, we can e.g. `requestSubpartition` or
`sendTaskEvent`. I am wondering why don't we implement the methods like
`notifyNewBufferSize` there?
Something like:
```
@Override
public void notifyNewBufferSize(RemoteInputChannel inputChannel, int
bufferSize) {
tcpChannel
.pipeline()
.fireUserEventTriggered(
new CreditBasedPartitionRequestClientHandler
.NewBufferSizeMessage(inputChannel,
bufferSize));
}
```
or (I am not sure about the threading model)
```
tcpChannel
.eventLoop()
.execute(
() -> {
tcpChannel
.pipeline()
.fireUserEventTriggered(
new
CreditBasedPartitionRequestClientHandler
.NewBufferSizeMessage(
inputChannel,
bufferSize));
});
```
I am sorry, I do not have much expertise on netty, so would be really nice
to hear from @pnowojski on the idea above.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]