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


   > I think hedging RPC support is a standard RPC layer thing (for ex grpc: 
[1]). We can probably make a case to port region replica to hedging framework 
in the RPC layer. Fun fact, when I first implemented this as a prototype, I had 
all the logic in the master registry itself and then the review comments from 
@apurtell and @saintstack were to push it into a layer below, which is RPC and 
it made sense to me.
   
   Most code of the current rpc-client and hbase-client are written by me so I 
think I'm more familiar with these things in HBase. We have retries everywhere 
in hbase-client, but we just use the same RpcRetryingCaller if we have the same 
retrying logic, so the argument here that if we do not implement hedge read in 
rpc layer then everyone needs to implement the logic by its own does not make 
sense.
   
   The problem here is the design of the client library. The ConnectionRegistry 
is the root of everything, we must make it available before we actually create 
the RpcClient which is used across all the client, so we can not make use of 
all the RpcRetryingCallers. But this is only a problem for the Registry 
implementation, not a common problem for the whole hbase client.
   
   > "hedgingPolicy": {
     "maxAttempts": 4,
     "hedgingDelay": "0.5s",
     "nonFatalStatusCodes": [
       "UNAVAILABLE",
       "INTERNAL",
       "ABORTED"
     ]
   }
   Back to the feature in grpc, this is the configs for the feature. Looking at 
the code in HBase, what do we do when there is an error? We just send the 
request again to the same endpoint? No! Definitely not. We need to check 
whether the endpoint is the correct place to go, if not, we change to another 
endpoint.


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