Apache9 commented on pull request #1593:
URL: https://github.com/apache/hbase/pull/1593#issuecomment-620278089


   Things are different in HBase. HBase is a rich client, you can see the 
implementation of the roc retrying caller. Typically, in HBase, a rpc retrying 
will lead to a clearing of meta location cache and then relocating, or fetching 
the new masters.
   
   For the case here, you have a test function to verify that whether the 
return protobuf message is valid right? In your old code, if someone returns an 
invalid protobuf message, the rpc framework will not consider it as incorrect 
and will return it to the upper layer and leads to a failure, even if other 
endpoints may give you the correct result. And if you implement the logic in 
MasterRegistry directly, you are free to wait request from other masters as 
well.
   
   And implementing hedge read is not an easy work. As I mentioned on the JIRA 
issue, the implementation is not fully ‘async’, it just execute a blocking 
operation in a thread pool, and uses an anti pattern in java that execute a 
critical task in common pool, which may lead to unpredictable dead lock. 
   
   GRPC has the hedge read support does not mean we have to support the 
feature. Even if we make use of GRPC directly, as said above, I do not think we 
will use its hedge read feature directly. Different scenarios.


----------------------------------------------------------------
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:
[email protected]


Reply via email to