- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3.4k
HBASE-27078 Allow configuring a separate timeout for meta scans (branch-2 backport) #4585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| 💔 -1 overall 
 This message was automatically generated. | 
| 💔 -1 overall 
 This message was automatically generated. | 
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| 💔 -1 overall 
 This message was automatically generated. | 
| 💔 -1 overall 
 This message was automatically generated. | 
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| @apurtell any chance you can take a look at this backport when you get a chance? I had some decisions to make (documented in description), would like them gut checked if possible. | 
| @apurtell one more ping, if you have time. Since this is just a backport I'll go ahead merging in the next day or two if I don't hear any concerns. Here's the relevant part I'd like another opinion on: 
 | 
| 
 I would claim it is directly fixable in branch-2.5 and branch-2. This is a change we can make on a minor, if there is some attention paid to compatibility with the earlier setting. Consider something functionally like: When resolving the JIRA add a release note so docmaker will pick up a note about the change. For branch-2.4, agree, I don't think we should touch it. The strategy you use in c52e2bf is fine there. | 
| 💔 -1 overall 
 
 This message was automatically generated. | 
| 💔 -1 overall 
 
 This message was automatically generated. | 
| 💔 -1 overall 
 
 This message was automatically generated. | 
30544aa    to
    713a6b0      
    Compare
  
    | 🎊 +1 overall 
 
 This message was automatically generated. | 
| 🎊 +1 overall 
 
 This message was automatically generated. | 
| 💔 -1 overall 
 
 This message was automatically generated. | 
Signed-off-by: Duo Zhang <[email protected]> Signed-off-by: Andrew Purtell <[email protected]>
…r meta scans (apache#4585) Signed-off-by: Duo Zhang <[email protected]> Signed-off-by: Andrew Purtell <[email protected]>
First commit is a cherry-pick from master branch, with some minor conflict resolution.
Second commit re-implements for the blocking client. For this, part of the complexity is that the rpc timeout needs to be pushed way down into ResultBoundedCompletionService's RetryingRpcCaller. What I have now seems like the cleanest way to achieve that, doing the
isSystemTable()check in TableBuilder, then passing down into ClientScanner constructors, ScannerCallble constructors, etc. We already had this pattern for replica timeout, but it now adds rpcTimeout and scannerTimeout.Another piece of complexity, covered by my 3rd commit, is that unfortunately in branch-2 scans use
hbase.rpc.timeoutinstead ofhbase.read.rpc.timeout. If anyone thinks its allowed, I'd love to fix that. But I assume it's not allowed, so the 3rd commit handles the case that we want to usehbase.rpc.timeoutfor normal scans andhbase.client.meta.read.rpc.timeoutfor meta scans. This will be unified in 3.0.0 where scans will usehbase.read.rpc.timeoutandhbase.client.meta.read.rpc.timeoutfor both AsyncTable and Table.The tests needed minor changes, mostly to support the different semantics of scanner next() timeouts in blocking client. More details in a comment of
testNormalScanTimeoutOnNext