[ https://issues.apache.org/jira/browse/FLINK-7416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16211288#comment-16211288 ]
ASF GitHub Bot commented on FLINK-7416: --------------------------------------- Github user zhijiangW commented on a diff in the pull request: https://github.com/apache/flink/pull/4533#discussion_r145749291 --- Diff: flink-runtime/src/test/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientHandlerTest.java --- @@ -208,6 +211,53 @@ public void testCancelBeforeActive() throws Exception { client.cancelRequestFor(inputChannel.getInputChannelId()); } + /** + * Verifies that {@link RemoteInputChannel} is enqueued in the pipeline, and + * {@link AddCredit} message is sent to the producer. + */ + @Test + public void testNotifyCreditAvailable() throws Exception { + final CreditBasedClientHandler handler = new CreditBasedClientHandler(); + final EmbeddedChannel channel = new EmbeddedChannel(handler); + + final RemoteInputChannel inputChannel = mock(RemoteInputChannel.class); --- End diff -- I reviewed all the previous existing tests in `PartitionRequestClientHandlerTest` and all the `RemoteInputChannel` is mocked, so I also used the mocked channel here. I think the mocked input channel is enough for this test, because there is no interaction with internal input channel. The handler just enqueues this input channel and pools it to send `AddCredit` message. If you prefer the real input channel, I am willing to modify it. > Implement Netty receiver outgoing pipeline for credit-based > ----------------------------------------------------------- > > Key: FLINK-7416 > URL: https://issues.apache.org/jira/browse/FLINK-7416 > Project: Flink > Issue Type: Sub-task > Components: Network > Reporter: zhijiang > Assignee: zhijiang > Fix For: 1.4.0 > > > 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. -- This message was sent by Atlassian JIRA (v6.4.14#64029)