Skip to content

HBASE-28608 More sensible client meta operation timeout default - #6000

Merged
Apache9 merged 1 commit into
apache:masterfrom
droudnitsky:HBASE-28608
Nov 21, 2024
Merged

HBASE-28608 More sensible client meta operation timeout default#6000
Apache9 merged 1 commit into
apache:masterfrom
droudnitsky:HBASE-28608

Conversation

@droudnitsky

@droudnitskydroudnitsky commented Jun 18, 2024

Copy link
Copy Markdown
Contributor

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@droudnitsky

Copy link
Copy Markdown
ContributorAuthor

fixed spotless check

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 26sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall2m 22smaster passed
+1 💚compile0m 16smaster passed
+1 💚shadedjars5m 40sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 14smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 27sthe patch passed
+1 💚compile0m 17sthe patch passed
+1 💚javac0m 17sthe patch passed
+1 💚shadedjars5m 42spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 14sthe patch passed
_ Other Tests _
+1 💚unit1m 26shbase-client in the patch passed.
20m 2s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#6000
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 3363826a38ae 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / cd4c5c3
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/testReport/
Max. process+thread count301 (vs. ulimit of 30000)
modulesC: hbase-client U: hbase-client
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 13sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall2m 45smaster passed
+1 💚compile0m 23smaster passed
+1 💚shadedjars5m 11sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 18smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 48sthe patch passed
+1 💚compile0m 22sthe patch passed
+1 💚javac0m 22sthe patch passed
+1 💚shadedjars5m 11spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 18sthe patch passed
_ Other Tests _
+1 💚unit1m 44shbase-client in the patch passed.
20m 5s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#6000
Optional Testsjavac javadoc unit shadedjars compile
unameLinux faf05cec2766 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / cd4c5c3
Default JavaEclipse Adoptium-17.0.10+7
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/testReport/
Max. process+thread count311 (vs. ulimit of 30000)
modulesC: hbase-client U: hbase-client
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 39sDocker mode activated.
-0 ⚠️yetus0m 4sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall2m 45smaster passed
+1 💚compile0m 20smaster passed
+1 💚shadedjars5m 18sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 17smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 46sthe patch passed
+1 💚compile0m 20sthe patch passed
+1 💚javac0m 20sthe patch passed
+1 💚shadedjars5m 19spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 17sthe patch passed
_ Other Tests _
+1 💚unit1m 38shbase-client in the patch passed.
20m 42s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#6000
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 7a73ef98eb37 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / cd4c5c3
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/testReport/
Max. process+thread count287 (vs. ulimit of 30000)
modulesC: hbase-client U: hbase-client
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 23sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall3m 15smaster passed
+1 💚compile0m 40smaster passed
+1 💚checkstyle0m 15smaster passed
+1 💚spotless0m 45sbranch has no errors when running spotless:check.
+1 💚spotbugs0m 45smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 58sthe patch passed
+1 💚compile0m 39sthe patch passed
+1 💚javac0m 39sthe patch passed
+1 💚checkstyle0m 14sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck5m 38sPatch does not cause any errors with Hadoop 3.3.6.
+1 💚spotless0m 42spatch has no errors when running spotless:check.
+1 💚spotbugs0m 48sthe patch passed
_ Other Tests _
+1 💚asflicense0m 10sThe patch does not generate ASF License warnings.
24m 3s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#6000
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux f0e229b4f262 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / cd4c5c3
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count78 (vs. ulimit of 30000)
modulesC: hbase-client U: hbase-client
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6000/2/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9

Copy link
Copy Markdown
Contributor

For me this is reasonable. But anyway this is a behavior change, better start a discuss thread on the dev list to see if others have other opinions.

Thanks.

@droudnitsky

droudnitsky commented Jun 30, 2024

Copy link
Copy Markdown
ContributorAuthor

Thank you for reviewing @Apache9 . I was originally under the impression that the default behavior was unintentional given the documentation in the hbase reference and the discussion in the work done in HBASE-24956 which added a new critical dependence on meta operation timeout in the locate region/meta lookup codepath in 2.x, but this may not have been unintentional as I originally thought. There seem to be two very different dependencies on meta operation timeout on 2.x:

  1. End to end operation timeout for system table operations (2.x and 3)
  2. Timeout to acquire userRegionLock to initiate meta scan in locateRegionInMeta (2.x blocking client only), this is the dependence on the meta operation timeout property that brought the 20 min default to my attention.

I am not familiar with how the locate region codepath on branch 3 works. But for branch 2 and the userRegionLock timeout, I don't think it makes sense to have default behavior be such that someone configuring client operation timeout can have operations taking many times longer than their client operation timeout due to contention around userRegionLock if they have not set the meta operation timeout.

I think it may be worth decoupling the userRegionLock timeout from the meta operation timeout, since we have one property that will dictate the behavior of two very different things on 2.x . I will put some more research and thought into this and perhaps raise a seperate issue to propose decoupling userRegionLock timeout from meta table operation timeout, which should make it simpler to reason about a default for meta operation timeout here. I'll start a dev list thread once I have gathered my thoughts on this, would be great to get more opinions on this, thank you for the suggestion and review.

@droudnitskydroudnitsky changed the title HBASE-28608 Correct client meta operation timeout to default to client operation timeoutHBASE-28608 More sensible client meta operation timeout defaultJun 30, 2024
@Apache9

Copy link
Copy Markdown
Contributor

On branch-3+, we have removed all the sync client code and reimplement sync client on top of async client. In async client,the locate region timeout is controlled by meta operation timeout, but since we are asynchronous, the upper layer could get a timeout even if the locating region operation has not completed yet, so there is no problem.

On branch-2, it is a problem since we run all the operations in one thread.

Thanks.

@droudnitsky

droudnitsky commented Jul 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Thank you for the explanation @Apache9 . I have opened HBASE-28730 to propose decoupling the meta operation timeout from the branch-2 userRegionLock/locate region codepath. If my proposal there sounds reasonable, I can work to get that implemented, and once that big branch-2 userRegionLock dependence on the property is gone, it should be simpler to reason about the implications of a new default for meta operation timeout and I can bring this PR up on the devlist for discussion.

@droudnitsky

droudnitsky commented Oct 1, 2024

Copy link
Copy Markdown
ContributorAuthor

Following up on my last comment, I originally was thinking to block this work on HBASE-28730 , but that issue itself is blocked on HBASE-27781 (which has patch available and is pending review), but even with HBASE-28730 completed there will still exist a dependency on meta operation timeout property , so I think would be good to get this in without blocking on HBASE-28730 + HBASE-27781, I will start a devlist discussion for the proposed change here shortly and see if there is support

@droudnitsky

Copy link
Copy Markdown
ContributorAuthor

Started dev list discussion here - https://lists.apache.org/thread/6q918prw2n6g90x1gfom4qf1hr3blxvv

@droudnitsky

Copy link
Copy Markdown
ContributorAuthor

Hi @Apache9 , from dev list thread started one week ago the proposal has received two +1s (so three +1s in total including your approval).

@Apache9
Apache9 merged commit beb36e8 into apache:masterNov 21, 2024
Apache9 pushed a commit that referenced this pull request Nov 21, 2024
…t operation timeout (#6000)
Co-authored-by: Daniel Roudnitsky <droudnitsky1@bloomberg.net>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
(cherry picked from commit beb36e8)
gvprathyusha6 pushed a commit to gvprathyusha6/hbase that referenced this pull request Dec 19, 2024
…t operation timeout (apache#6000)
Co-authored-by: Daniel Roudnitsky <droudnitsky1@bloomberg.net>
Signed-off-by: Duo Zhang zhangduo@apache.org
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@droudnitsky@Apache-HBase@Apache9