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]
