functioner commented on pull request #2737:
URL: https://github.com/apache/hadoop/pull/2737#issuecomment-822713500


   > Thanks @functioner
   > The detailed discussions (except the lambda argument) should have been on 
the Jira.
   > 
   > > IMO, this is a classic Producer-Consumer problem, and it is natural idea 
to improve performance using parallel way.
   > 
   > > So, call.sendResponse() (network service) affects FSEditLogAsync (edit 
log sync service). So, I would say it's a bug.
   > 
   > Now, I am really even more confused about the (Bug Vs. Improvement). So, I 
am going to pass on reviewing.
   
   @amahussein Thanks for your feedback, and your time!
   Sorry for all the possible confusion I made.
   
   It's not a big deal whether it's marked as bug or improvement. One of my bug 
reports ([HADOOP-17552](https://issues.apache.org/jira/browse/HADOOP-17552)) is 
also finally marked as improvement rather than bug. The point is that the 
developers (in 
[HADOOP-17552](https://issues.apache.org/jira/browse/HADOOP-17552)) finally 
realized that there's a potential hanging issue as I point out, and the patch 
(as well as the relevant discussion) is very helpful for the developers and the 
users.
   
   > Ok, is the purpose of the change is to improve performance of the 
FSEditLogAsync.java by executing sendResponse() in parallel?
   > In that case, please change the title of the Jira and the description to 
remove references to "hanging" problems.
   
   My intention is to defend that we should not remove the references to 
"hanging" problems.
   
   In short, the discussion above can be summarized into 3 arguments:
   1. https://github.com/apache/hadoop/pull/2737#issuecomment-822151838: this 
is a classic Producer-Consumer problem, and it is natural idea to improve 
performance using parallel way
   2. https://github.com/apache/hadoop/pull/2737#issuecomment-822591028: the 
`call.sendResponse()` may hang due to network issue, without throwing any 
exception
   3. https://github.com/apache/hadoop/pull/2737#issuecomment-822617097: 
   a). the `FSEditLogAsync` thread (without this patch) directly invokes a 
network I/O call `call.sendResponse()`, so if this network I/O invocation 
hangs, the `FSEditLogAsync` thread also hangs
   b). in the "correct" system design, if this network I/O invocation hangs in 
this way, then that should be fine, because HDFS (as a fault-tolerant system) 
should tolerate it.
   c). when the system tolerates this network issue, the `FSEditLogAsync` 
thread should not hang, otherwise everybody can't commit the log.
   d). our expected behavior is that, when the system tolerates this network 
issue, the `FSEditLogAsync` thread should continue, so that everything still 
works well, despite this network issue.
   
   Both Argument 3 and Argument 1 can be resolved with this patch.
   
   In conclusion, this patch not only improves the performance, but also 
enhances the availability & fault-tolerance.
   
   So, I think the references to "hanging" problems should not be removed.
   
   P.S. I will summarize our discussion with a comment in Jira after we reach a 
consensus.


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