-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-27078 Allow configuring a separate timeout for meta scans (branch-2 backport) #4585
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.timeout
instead 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.timeout
for normal scans andhbase.client.meta.read.rpc.timeout
for meta scans. This will be unified in 3.0.0 where scans will usehbase.read.rpc.timeout
andhbase.client.meta.read.rpc.timeout
for 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