functioner edited a comment on pull request #2737:
URL: https://github.com/apache/hadoop/pull/2737#issuecomment-822806901


   > No, it's a non-blocking write so by definition it will never hang – unless 
induced by fault injection.
   
   @daryn-sharp I have considered this counterargument in 
https://github.com/apache/hadoop/pull/2737#issuecomment-822591028, where I 
proposed another argument that it may hang when it's a huge payload, because 
there's a while-loop. Please take a look.
   
   Yes, `channel.write(buffer)` is non-blocking. But I suspect that 
`channelIO(null, channel, buffer)` is blocking, otherwise we won't have the 
performance issue in 
[HDFS-15486](https://issues.apache.org/jira/browse/HDFS-15486). Within 
`channelIO(null, channel, buffer)`, the large payload is split into multiple 
parts, and it will won't jump out of the loop until the remaining part of 
payload does not exceed the buffer limit, meaning that it's waiting for the 
network to finish sending some content.
   
   I'm not sure whether it can defend my argument. Can you provide more 
explanation? Maybe I'm not correct. Thanks!


-- 
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to