hbase icon indicating copy to clipboard operation
hbase copied to clipboard

HBASE-29387: Reload quotas from hbase:quota table when changes are made

Open charlesconnell opened this issue 6 months ago • 11 comments

  • New ReloadQuotas RPC supported by RegionServers
  • When a quota is modified, the HMaster sends this RPC to all RegionServers
  • When a RegionServer gets a ReloadQuotasRequest, it does QuotaRefresherChore#chore()
  • When a RegionServer gets an UpdateConfigurationRequest, or the equivalent Unix signal, this also triggers QuotaRefresherChore#chore()
  • Increase scheduled runs of QuotaRefresherChore from 5 minute period to 12 hours, because it only necessary now for doing evictions.
  • Change logic of QuotaRefresherChore#chore() so that it always reloads non-expired cache entries, regardless of when they were last loaded

charlesconnell avatar Jun 11 '25 18:06 charlesconnell

:confetti_ball: +1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 0m 28s Docker mode activated.
_ Prechecks _
+1 :green_heart: dupname 0m 0s No case conflicting files found.
+0 :ok: codespell 0m 0s codespell was not available.
+0 :ok: detsecrets 0m 0s detect-secrets was not available.
+0 :ok: buf 0m 0s buf was not available.
+0 :ok: buf 0m 0s buf was not available.
+1 :green_heart: @author 0m 0s The patch does not contain any @author tags.
+1 :green_heart: hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+0 :ok: mvndep 0m 11s Maven dependency ordering for branch
+1 :green_heart: mvninstall 3m 37s master passed
+1 :green_heart: compile 5m 1s master passed
+1 :green_heart: checkstyle 1m 8s master passed
+1 :green_heart: spotbugs 5m 14s master passed
+1 :green_heart: spotless 0m 54s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 10s Maven dependency ordering for patch
+1 :green_heart: mvninstall 3m 24s the patch passed
+1 :green_heart: compile 5m 3s the patch passed
+1 :green_heart: cc 5m 3s the patch passed
+1 :green_heart: javac 5m 3s the patch passed
+1 :green_heart: blanks 0m 0s The patch has no blanks issues.
-0 :warning: checkstyle 0m 41s /results-checkstyle-hbase-server.txt hbase-server: The patch generated 1 new + 18 unchanged - 0 fixed = 19 total (was 18)
+1 :green_heart: spotbugs 5m 36s the patch passed
+1 :green_heart: hadoopcheck 11m 57s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 :green_heart: hbaseprotoc 1m 41s the patch passed
+1 :green_heart: spotless 0m 49s patch has no errors when running spotless:check.
_ Other Tests _
+1 :green_heart: asflicense 0m 30s The patch does not generate ASF License warnings.
55m 1s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat hbaseprotoc
uname Linux 1a67c86e727c 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c739137198444be38cfd20c0db00525fc8d55531
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 85 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/1/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 11 '25 19:06 Apache-HBase

:broken_heart: -1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 0m 29s Docker mode activated.
-0 :warning: yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 :ok: mvndep 0m 10s Maven dependency ordering for branch
+1 :green_heart: mvninstall 3m 11s master passed
+1 :green_heart: compile 1m 50s master passed
+1 :green_heart: javadoc 0m 55s master passed
+1 :green_heart: shadedjars 6m 4s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 13s Maven dependency ordering for patch
+1 :green_heart: mvninstall 2m 58s the patch passed
+1 :green_heart: compile 1m 51s the patch passed
+1 :green_heart: javac 1m 51s the patch passed
+1 :green_heart: javadoc 0m 53s the patch passed
+1 :green_heart: shadedjars 6m 12s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 :green_heart: unit 0m 35s hbase-protocol-shaded in the patch passed.
-1 :x: unit 1m 15s /patch-unit-hbase-client.txt hbase-client in the patch failed.
+1 :green_heart: unit 212m 57s hbase-server in the patch passed.
244m 42s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests javac javadoc unit compile shadedjars
uname Linux 97f0fd1fdaba 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c739137198444be38cfd20c0db00525fc8d55531
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/1/testReport/
Max. process+thread count 5205 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/1/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 11 '25 23:06 Apache-HBase

:confetti_ball: +1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 0m 30s Docker mode activated.
_ Prechecks _
+1 :green_heart: dupname 0m 0s No case conflicting files found.
+0 :ok: codespell 0m 0s codespell was not available.
+0 :ok: detsecrets 0m 0s detect-secrets was not available.
+0 :ok: buf 0m 0s buf was not available.
+0 :ok: buf 0m 0s buf was not available.
+1 :green_heart: @author 0m 0s The patch does not contain any @author tags.
+1 :green_heart: hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+0 :ok: mvndep 0m 19s Maven dependency ordering for branch
+1 :green_heart: mvninstall 3m 26s master passed
+1 :green_heart: compile 5m 51s master passed
+1 :green_heart: checkstyle 1m 40s master passed
+1 :green_heart: spotbugs 6m 35s master passed
+1 :green_heart: spotless 0m 50s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 11s Maven dependency ordering for patch
+1 :green_heart: mvninstall 3m 26s the patch passed
+1 :green_heart: compile 5m 50s the patch passed
+1 :green_heart: cc 5m 50s the patch passed
+1 :green_heart: javac 5m 50s the patch passed
+1 :green_heart: blanks 0m 0s The patch has no blanks issues.
+1 :green_heart: checkstyle 1m 39s the patch passed
+1 :green_heart: spotbugs 7m 10s the patch passed
+1 :green_heart: hadoopcheck 11m 53s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 :green_heart: hbaseprotoc 2m 4s the patch passed
+1 :green_heart: spotless 0m 49s patch has no errors when running spotless:check.
_ Other Tests _
+1 :green_heart: asflicense 0m 37s The patch does not generate ASF License warnings.
61m 14s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat hbaseprotoc
uname Linux 701a6df40d19 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 7c510a589c9bc024dff787b5aff71fca48c79e58
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 84 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/2/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 12 '25 02:06 Apache-HBase

:confetti_ball: +1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 0m 30s Docker mode activated.
-0 :warning: yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 :ok: mvndep 0m 20s Maven dependency ordering for branch
+1 :green_heart: mvninstall 3m 0s master passed
+1 :green_heart: compile 2m 20s master passed
+1 :green_heart: javadoc 1m 27s master passed
+1 :green_heart: shadedjars 6m 10s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 14s Maven dependency ordering for patch
+1 :green_heart: mvninstall 2m 59s the patch passed
+1 :green_heart: compile 2m 17s the patch passed
+1 :green_heart: javac 2m 17s the patch passed
+1 :green_heart: javadoc 1m 23s the patch passed
+1 :green_heart: shadedjars 6m 1s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 :green_heart: unit 0m 33s hbase-protocol-shaded in the patch passed.
+1 :green_heart: unit 1m 36s hbase-client in the patch passed.
+1 :green_heart: unit 214m 42s hbase-server in the patch passed.
+1 :green_heart: unit 6m 40s hbase-thrift in the patch passed.
255m 1s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests javac javadoc unit compile shadedjars
uname Linux ae933d7875f3 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 7c510a589c9bc024dff787b5aff71fca48c79e58
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/2/testReport/
Max. process+thread count 5070 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/2/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 12 '25 05:06 Apache-HBase

For me I prefer we just send the request to master and let master to trigger reload for region servers.

That is exactly what this PR implements.

For now, how do we change quotas? Write to the hbase:quota table directly from client? Or let master do the updating?

Client sends an RPC to the hmaster, which writes to the hbase:quota table. The RegionServer sees the change on its next chore run which reads that table.

charlesconnell avatar Jun 13 '25 22:06 charlesconnell

For me I prefer we just send the request to master and let master to trigger reload for region servers.

That is exactly what this PR implements.

Then why do we need to implement an Admin method which takes a ServerName?

For now, how do we change quotas? Write to the hbase:quota table directly from client? Or let master do the updating?

Client sends an RPC to the hmaster, which writes to the hbase:quota table. The RegionServer sees the change on its next chore run which reads that table.

Apache9 avatar Jun 14 '25 08:06 Apache9

I do not think you get my point...

What I mean, is to send a request to master, and then master schedule a procedure and schedule remote procedures to trigger reloading on region server...

Apache9 avatar Jun 14 '25 08:06 Apache9

I understand now. Remote procedures are a better way for the HMaster to trigger something to happen on a RegionServer, but I did not consider them at first. I've re-written this PR to do it that way.

charlesconnell avatar Jun 16 '25 16:06 charlesconnell

:confetti_ball: +1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 1m 29s Docker mode activated.
_ Prechecks _
+1 :green_heart: dupname 0m 0s No case conflicting files found.
+0 :ok: codespell 0m 0s codespell was not available.
+0 :ok: detsecrets 0m 0s detect-secrets was not available.
+0 :ok: buf 0m 0s buf was not available.
+0 :ok: buf 0m 0s buf was not available.
+1 :green_heart: @author 0m 0s The patch does not contain any @author tags.
+1 :green_heart: hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+0 :ok: mvndep 0m 16s Maven dependency ordering for branch
+1 :green_heart: mvninstall 4m 4s master passed
+1 :green_heart: compile 6m 13s master passed
+1 :green_heart: checkstyle 1m 34s master passed
+1 :green_heart: spotbugs 6m 22s master passed
+1 :green_heart: spotless 0m 50s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 12s Maven dependency ordering for patch
+1 :green_heart: mvninstall 3m 7s the patch passed
+1 :green_heart: compile 5m 25s the patch passed
+1 :green_heart: cc 5m 25s the patch passed
-0 :warning: javac 3m 18s /results-compile-javac-hbase-server.txt hbase-server generated 1 new + 192 unchanged - 1 fixed = 193 total (was 193)
+1 :green_heart: blanks 0m 0s The patch has no blanks issues.
-0 :warning: checkstyle 0m 36s /results-checkstyle-hbase-server.txt hbase-server: The patch generated 1 new + 18 unchanged - 0 fixed = 19 total (was 18)
+1 :green_heart: spotbugs 6m 22s the patch passed
+1 :green_heart: hadoopcheck 12m 17s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 :green_heart: hbaseprotoc 1m 52s the patch passed
+1 :green_heart: spotless 0m 46s patch has no errors when running spotless:check.
_ Other Tests _
+1 :green_heart: asflicense 0m 35s The patch does not generate ASF License warnings.
61m 23s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat hbaseprotoc
uname Linux a779dbbf257a 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c4b1bdf76aaefce44ea092734c29815c548e89cd
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 85 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/3/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 17 '25 01:06 Apache-HBase

:broken_heart: -1 overall

Vote Subsystem Runtime Logfile Comment
+0 :ok: reexec 0m 28s Docker mode activated.
-0 :warning: yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 :ok: mvndep 0m 37s Maven dependency ordering for branch
+1 :green_heart: mvninstall 3m 17s master passed
+1 :green_heart: compile 2m 13s master passed
+1 :green_heart: javadoc 1m 23s master passed
+1 :green_heart: shadedjars 5m 50s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 :ok: mvndep 0m 13s Maven dependency ordering for patch
+1 :green_heart: mvninstall 2m 54s the patch passed
+1 :green_heart: compile 2m 10s the patch passed
+1 :green_heart: javac 2m 10s the patch passed
+1 :green_heart: javadoc 1m 21s the patch passed
+1 :green_heart: shadedjars 5m 49s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 :green_heart: unit 0m 32s hbase-protocol-shaded in the patch passed.
+1 :green_heart: unit 1m 34s hbase-client in the patch passed.
-1 :x: unit 474m 34s /patch-unit-hbase-server.txt hbase-server in the patch failed.
+1 :green_heart: unit 7m 23s hbase-thrift in the patch passed.
516m 10s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/3/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR https://github.com/apache/hbase/pull/7091
JIRA Issue HBASE-29387
Optional Tests javac javadoc unit compile shadedjars
uname Linux 04d3ac7b919e 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c4b1bdf76aaefce44ea092734c29815c548e89cd
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/3/testReport/
Max. process+thread count 5391 (vs. ulimit of 30000)
modules C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7091/3/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Apache-HBase avatar Jun 17 '25 09:06 Apache-HBase

test failures are unrelated

charlesconnell avatar Jun 17 '25 13:06 charlesconnell