[ 
https://issues.apache.org/jira/browse/FLINK-7411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16182553#comment-16182553
 ] 

ASF GitHub Bot commented on FLINK-7411:
---------------------------------------

Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4517#discussion_r141341300
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/NettyMessage.java
 ---
    @@ -130,34 +128,31 @@ protected void decode(ChannelHandlerContext ctx, 
ByteBuf msg, List<Object> out)
     
                        byte msgId = msg.readByte();
     
    -                   NettyMessage decodedMsg = null;
    -
    -                   if (msgId == BufferResponse.ID) {
    -                           decodedMsg = new BufferResponse();
    -                   }
    -                   else if (msgId == PartitionRequest.ID) {
    -                           decodedMsg = new PartitionRequest();
    -                   }
    -                   else if (msgId == TaskEventRequest.ID) {
    -                           decodedMsg = new TaskEventRequest();
    -                   }
    -                   else if (msgId == ErrorResponse.ID) {
    -                           decodedMsg = new ErrorResponse();
    -                   }
    -                   else if (msgId == CancelPartitionRequest.ID) {
    -                           decodedMsg = new CancelPartitionRequest();
    -                   }
    -                   else if (msgId == CloseRequest.ID) {
    -                           decodedMsg = new CloseRequest();
    -                   }
    -                   else {
    -                           throw new IllegalStateException("Received 
unknown message from producer: " + msg);
    +                   final NettyMessage decodedMsg;
    +                   switch (msgId) {
    +                           case BufferResponse.ID:
    +                                   decodedMsg = 
BufferResponse.readFrom(msg);
    +                                   break;
    +                           case PartitionRequest.ID:
    +                                   decodedMsg = 
PartitionRequest.readFrom(msg);
    +                                   break;
    +                           case TaskEventRequest.ID:
    +                                   decodedMsg = 
TaskEventRequest.readFrom(msg, getClass().getClassLoader());
    +                                   break;
    +                           case ErrorResponse.ID:
    +                                   decodedMsg = 
ErrorResponse.readFrom(msg);
    +                                   break;
    +                           case CancelPartitionRequest.ID:
    +                                   decodedMsg = 
CancelPartitionRequest.readFrom(msg);
    +                                   break;
    +                           case CloseRequest.ID:
    +                                   decodedMsg = CloseRequest.readFrom(msg);
    +                                   break;
    +                           default:
    +                                   throw new 
IllegalStateException("Received unknown message from producer: " + msg);
    --- End diff --
    
    I agree that `IllegalStateException` is not the best fit here, but also, 
`UnsupportedOperationException` is not - what do you think about 
`ProtocolException`?


> minor performance improvements in NettyMessage
> ----------------------------------------------
>
>                 Key: FLINK-7411
>                 URL: https://issues.apache.org/jira/browse/FLINK-7411
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Network
>    Affects Versions: 1.4.0
>            Reporter: Nico Kruber
>            Assignee: Nico Kruber
>            Priority: Minor
>
> {{NettyMessage}} may be improved slightly performance-wise in these regards:
> - in {{NettyMessage.NettyMessageDecoder#decode()}}: instead of having 
> multiple if-elseif-... use a switch to cycle through the message ID
> - use a static {{NettyMessage}} subtype {{readFrom(ByteBuf buffer)}} - we do 
> not really need to have a virtual function here



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to