Skip to content

HBASE-27681 Refactor Table Latency Metrics - #5072

Merged
bbeaudreault merged 1 commit into
apache:masterfrom
thangTang:HBASE-27681
Mar 7, 2023
Merged

HBASE-27681 Refactor Table Latency Metrics#5072
bbeaudreault merged 1 commit into
apache:masterfrom
thangTang:HBASE-27681

Conversation

@thangTang

Copy link
Copy Markdown
Contributor

No description provided.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 16sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo 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 _
+0 🆗mvndep0m 14sMaven dependency ordering for branch
+1 💚mvninstall4m 40smaster passed
+1 💚compile3m 38smaster passed
+1 💚checkstyle0m 55smaster passed
+1 💚spotless0m 46sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 17smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall3m 28sthe patch passed
+1 💚compile2m 56sthe patch passed
-0 ⚠️javac2m 27shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 53sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 29sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
-1 ❌spotbugs1m 39shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
45m 41s
ReasonTests
FindBugsmodule:hbase-server
Unread field:MetricsTableLatencies.java:[line 116]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 87736c4a34cb 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/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.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 26sDocker 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 _
+0 🆗mvndep0m 33sMaven dependency ordering for branch
+1 💚mvninstall5m 19smaster passed
+1 💚compile1m 15smaster passed
+1 💚shadedjars5m 22sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 49smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall4m 40sthe patch passed
+1 💚compile1m 15sthe patch passed
+1 💚javac1m 15sthe patch passed
+1 💚shadedjars5m 19spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 45sthe patch passed
_ Other Tests _
+1 💚unit0m 17shbase-metrics in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit213m 15shbase-server in the patch passed.
244m 43s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 3e0e2b922aef 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/testReport/
Max. process+thread count2656 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/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 🆗reexec1m 0sDocker 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 _
+0 🆗mvndep0m 17sMaven dependency ordering for branch
+1 💚mvninstall5m 45smaster passed
+1 💚compile1m 35smaster passed
+1 💚shadedjars5m 16sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 57smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall5m 29sthe patch passed
+1 💚compile1m 31sthe patch passed
+1 💚javac1m 31sthe patch passed
+1 💚shadedjars5m 18spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 58sthe patch passed
_ Other Tests _
+1 💚unit0m 21shbase-metrics in the patch passed.
+1 💚unit0m 52shbase-hadoop-compat in the patch passed.
-1 ❌unit320m 49shbase-server in the patch failed.
355m 12s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 5d4d7280b448 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/testReport/
Max. process+thread count2388 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to do a more thorough read-through, but I do like the direction here so far... A couple questions:

  • Should we do anything to unify with TableMetrics/MetricsTableSourceImpl class?
  • Are there any additional tests we should add to verify all the new behavior end-to-end? It's a big change. We might at least want to upload a screenshot or dump of jmx metrics from a real server to prove that all of the expected metrics get updated.

I also find a lot of duplication in RSRpcServices. I almost wonder if we should expose a method on HRegion:

region.ifTableMetricsEnabled(metrics -> metrics.updateGet(timeCost));

Maybe not a huge improvement, but I find all the null checks tedious. Open to other ideas.

@thangTang

thangTang commented Mar 2, 2023

Copy link
Copy Markdown
ContributorAuthor
  • Should we do anything to unify with TableMetrics/MetricsTableSourceImpl class?

I think so. But maybe we can split it into another issue? What do you think?

  • Are there any additional tests we should add to verify all the new behavior end-to-end? It's a big change. We might at least want to upload a screenshot or dump of jmx metrics from a real server to prove that all of the expected metrics get updated.

I will do some tests and upload, maybe a doc, in this weekend.

I also find a lot of duplication in RSRpcServices. I almost wonder if we should expose a method on HRegion:

Glad to make some changes.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

Convergence of null check, and renamed metricsName to tableRequests.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 57sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo 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 _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 40smaster passed
+1 💚compile2m 58smaster passed
+1 💚checkstyle0m 52smaster passed
+1 💚spotless0m 44sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 11smaster passed
-0 ⚠️patch1m 46sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 28sthe patch passed
+1 💚compile2m 54sthe patch passed
-0 ⚠️javac2m 22shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 53sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 25sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 40spatch has no errors when running spotless:check.
-1 ❌spotbugs1m 39shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 30sThe patch does not generate ASF License warnings.
42m 38s
ReasonTests
FindBugsmodule:hbase-server
Unread field:MetricsTableRequests.java:[line 116]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 789d0261037c 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count81 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/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.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for trying that @thangTang ... Sorry, now that I see it.. I think maybe it's not the right move. Instead maybe some other abstraction. I need to think on this more, but this is what I'm noticing:

We're making the exact same calls, just with different receivers. For example:

if (region.getTableMetrics() != null) {
region.getTableMetrics().updateDelete(timeCost));
}
if (metricsRegionServer != null) {
metricsRegionServer.updateDelete(timeCost);
}

So we're calling updateDelete twice, just on different objects. This pattern repeats for every single method of RSRpcServices. This isn't so bad for updateDelete, but some of them (i.e. scans) involve multiple calls, lots of duplication.

Previously this duplication was nicely encapsulated in MetricsRegionServer. We passed in a TableName, and it updated table metrics if appropriately.

You removed the TableName argument, so now the code has to live outside MetricsRegionServer. What if you replace TableName argument with Region argument? So MetricRegionServer.updateGet would become:

publicvoidupdateGet(Regionregion, longt) {
if (region.getTableMetrics() != null) {
region.getTableMetrics().updateGet(t);
}
if (t > slowMetricTime) {
serverSource.incrSlowGet();
}
serverSource.updateGet(t);
userAggregate.updateGet(t);
}

Still lots of calling the same method on different objects, but at least it's encapsulated. Alternatively I feel like we want some other abstraction to encapsulate this, rather than add lots of duplicate code in RSRpcServices (which is already a huge class).

Thoughts?

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 25sDocker 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 _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 3smaster passed
+1 💚compile0m 55smaster passed
+1 💚shadedjars4m 35sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 40smaster passed
-0 ⚠️patch5m 34sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 45sthe patch passed
+1 💚compile0m 54sthe patch passed
+1 💚javac0m 54sthe patch passed
+1 💚shadedjars4m 33spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39sthe patch passed
_ Other Tests _
+1 💚unit0m 14shbase-metrics in the patch passed.
+1 💚unit0m 31shbase-hadoop-compat in the patch passed.
+1 💚unit207m 54shbase-server in the patch passed.
231m 20s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 33a005133b24 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/testReport/
Max. process+thread count2505 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/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 55sDocker 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 _
+0 🆗mvndep0m 14sMaven dependency ordering for branch
+1 💚mvninstall3m 38smaster passed
+1 💚compile1m 15smaster passed
+1 💚shadedjars4m 26sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 52smaster passed
-0 ⚠️patch5m 45sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 22sthe patch passed
+1 💚compile1m 14sthe patch passed
+1 💚javac1m 14sthe patch passed
+1 💚shadedjars4m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 51sthe patch passed
_ Other Tests _
+1 💚unit0m 19shbase-metrics in the patch passed.
+1 💚unit0m 41shbase-hadoop-compat in the patch passed.
+1 💚unit216m 34shbase-server in the patch passed.
245m 12s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux c3d4a8157d04 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/testReport/
Max. process+thread count2514 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/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.

@thangTang

thangTang commented Mar 3, 2023

Copy link
Copy Markdown
ContributorAuthor

Previously this duplication was nicely encapsulated in MetricsRegionServer. We passed in a TableName, and it updated table metrics if appropriately.

You removed the TableName argument, so now the code has to live outside MetricsRegionServer. What if you replace TableName argument with Region argument?

Agree that is a truly problem. Honestly I have consider it too.

I think the previous code structure is a bit confusing.
From the naming point of view, MetricsRegionServer and MetricsTableRequests should be at the same level, but they are actually completely different. We can see that MetricsRegionServer holds serverSource, metricsTable, tableMetrics, userAggregate, and so on.

My vision is that each metrics object is only responsible for operating one type of metrics (that is, a bean in jmx), so that the metric of the table belongs to the metricsTable, the metric of the server belongs to the metricsServer, and the metric of the region belongs to the metricsRegion. Then there is a tool class that only needs to be called once externally (such as in RSRpcServices), and encapsulates all operations on metrics in the methods of this tool class.

In fact, the current MetricsRegionServer is such a tool class. We can change its name, or create a new class, and then gradually refactor various metrics, transfer the function of the main entrance to the new class, and let MetricsRegionServer gradually degenerate into only responsible for serverMetrics.

But in order to disassemble the work and try to have a clear goal, in this ticket I don't intend to modify anything other than tableLatencies. That's why I just left it here.

After all, now I'm glad to temporarily put these logics back into MetricsRegionServer, just as you said, replace TableName argument with Region argument. What do you think?

@bbeaudreault

Copy link
Copy Markdown
Contributor

@thangTang your analysis makes a lot of sense, and I 100% agree with the direction. I agree the existing setup is a bit confusing, and MetricsRegionServer is more of a tool class. I agree it would be nice to either rename it or refactor it, and that can happen in a separate issue.

For this PR, I think it would be nice to move the logic back into MetricsRegionServer for now. For two reasons:

  1. Reduces the diff here
  2. Keeps RSRpcServices a bit cleaner... It's already a huge and messy class, so would rather not move more logic into it if not necessary.

Passing Region into MetricRegionServer might seem a bit weird, but all of the options are weird. This way at least is a minimal diff. I think we could add a comment or todo in the code to let developers know that we hope to clean up the abstraction.

I have another PR #5067 which is going to add more metrics to Table and RegionServer beans. I think that PR would also end up quite a bit messier if we moved the logic into RSRpcServices, so I think that's a good reason (ease of adding new metrics)

@thangTang

Copy link
Copy Markdown
ContributorAuthor

I think it would be nice to move the logic back into MetricsRegionServer for now.

Thank you for your suggestion @bbeaudreault ~
I pushed a new commit and put them back: )

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 5sDocker 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 _
+0 🆗mvndep0m 15sMaven dependency ordering for branch
+1 💚mvninstall3m 20smaster passed
+1 💚compile2m 57smaster passed
+1 💚checkstyle0m 52smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 8smaster passed
-0 ⚠️patch1m 45sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 25sthe patch passed
+1 💚compile2m 54sthe patch passed
-0 ⚠️javac2m 22shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 54sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 11sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 33sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
42m 8s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 8b91c5528b2f 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count86 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/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.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a couple more code cleanliness stuff, thanks for the work here

// Handle table latency metrics
private MetricsTableRequests metricsTableRequests;

public void ifTableRequestsMetricsExist(Consumer<MetricsTableRequests> consumer) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry i wasn't clear... i was wrong here, and I dont think this method actually improves much. can we revert this part too? sorry

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, let me try.

tableMetrics.updatePutBatch(tn, t);
}
public void updatePutBatch(HRegion region, long t) {
Optional.ofNullable(region).ifPresent(r -> Optional.ofNullable(r.getMetricsTableRequests())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I thought you were going to remove all the Optional stuff.

If you want to keep that, I think we should just have region.getTableMetrics() return an Optional. That way we don't have to create 2 optionals in every call. You can an just chain them together with flatMap.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes, my fault...

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 27sDocker 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 _
+0 🆗mvndep0m 22sMaven dependency ordering for branch
+1 💚mvninstall2m 46smaster passed
+1 💚compile0m 55smaster passed
+1 💚shadedjars4m 36sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 38smaster passed
-0 ⚠️patch5m 34sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall2m 43sthe patch passed
+1 💚compile0m 54sthe patch passed
+1 💚javac0m 54sthe patch passed
+1 💚shadedjars4m 32spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 38sthe patch passed
_ Other Tests _
+1 💚unit0m 14shbase-metrics in the patch passed.
+1 💚unit0m 31shbase-hadoop-compat in the patch passed.
-1 ❌unit211m 8shbase-server in the patch failed.
234m 32s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f14ee5b7b001 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/testReport/
Max. process+thread count2486 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/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 🆗reexec1m 0sDocker 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 _
+0 🆗mvndep0m 21sMaven dependency ordering for branch
+1 💚mvninstall3m 26smaster passed
+1 💚compile1m 14smaster passed
+1 💚shadedjars4m 27sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 50smaster passed
-0 ⚠️patch5m 43sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 27sthe patch passed
+1 💚compile1m 14sthe patch passed
+1 💚javac1m 14sthe patch passed
+1 💚shadedjars4m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 50sthe patch passed
_ Other Tests _
+1 💚unit0m 19shbase-metrics in the patch passed.
+1 💚unit0m 41shbase-hadoop-compat in the patch passed.
+1 💚unit217m 46shbase-server in the patch passed.
244m 48s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux b27b80197d28 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/testReport/
Max. process+thread count2510 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/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 🆗reexec1m 3sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo 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 _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall3m 25smaster passed
+1 💚compile2m 56smaster passed
+1 💚checkstyle0m 50smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 4smaster passed
-0 ⚠️patch1m 46sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 19sthe patch passed
+1 💚compile2m 56sthe patch passed
-0 ⚠️javac2m 23shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 54sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 14sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 42spatch has no errors when running spotless:check.
+1 💚spotbugs2m 34sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
41m 58s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 3476f1d06bbd 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/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.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 26sDocker 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 _
+0 🆗mvndep0m 14sMaven dependency ordering for branch
+1 💚mvninstall2m 46smaster passed
+1 💚compile0m 54smaster passed
+1 💚shadedjars4m 34sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39smaster passed
-0 ⚠️patch5m 31sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 45sthe patch passed
+1 💚compile0m 55sthe patch passed
+1 💚javac0m 55sthe patch passed
+1 💚shadedjars4m 33spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39sthe patch passed
_ Other Tests _
+1 💚unit0m 14shbase-metrics in the patch passed.
+1 💚unit0m 31shbase-hadoop-compat in the patch passed.
+1 💚unit207m 35shbase-server in the patch passed.
230m 47s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 230883cbff32 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/testReport/
Max. process+thread count2431 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/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 50sDocker 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 _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall3m 23smaster passed
+1 💚compile1m 14smaster passed
+1 💚shadedjars4m 26sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 50smaster passed
-0 ⚠️patch5m 43sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 23sthe patch passed
+1 💚compile1m 15sthe patch passed
+1 💚javac1m 15sthe patch passed
+1 💚shadedjars4m 28spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 51sthe patch passed
_ Other Tests _
+1 💚unit0m 19shbase-metrics in the patch passed.
+1 💚unit0m 42shbase-hadoop-compat in the patch passed.
+1 💚unit215m 56shbase-server in the patch passed.
242m 26s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 3155b8c54e64 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/testReport/
Max. process+thread count2486 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/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 57sDocker 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 _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall3m 23smaster passed
+1 💚compile2m 57smaster passed
+1 💚checkstyle0m 53smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 6smaster passed
-0 ⚠️patch1m 45sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 22sthe patch passed
+1 💚compile2m 55sthe patch passed
-0 ⚠️javac2m 23shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
-0 ⚠️checkstyle0m 35shbase-server: The patch generated 1 new + 24 unchanged - 0 fixed = 25 total (was 24)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck13m 9sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
-1 ❌spotless0m 37spatch has 21 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs2m 44sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
43m 31s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 67fc804e48fd 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count82 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/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.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 32sDocker 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 _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall3m 0smaster passed
+1 💚compile0m 56smaster passed
+1 💚shadedjars4m 35sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 40smaster passed
-0 ⚠️patch5m 33sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 47sthe patch passed
+1 💚compile0m 56sthe patch passed
+1 💚javac0m 56sthe patch passed
+1 💚shadedjars4m 33spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39sthe patch passed
_ Other Tests _
+1 💚unit0m 14shbase-metrics in the patch passed.
+1 💚unit0m 31shbase-hadoop-compat in the patch passed.
-1 ❌unit210m 25shbase-server in the patch failed.
234m 13s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 7b64a1ff6f3a 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/testReport/
Max. process+thread count2409 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/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 🆗reexec1m 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 _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall3m 30smaster passed
+1 💚compile1m 16smaster passed
+1 💚shadedjars4m 44sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 53smaster passed
-0 ⚠️patch6m 3sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 35sthe patch passed
+1 💚compile1m 18sthe patch passed
+1 💚javac1m 18sthe patch passed
+1 💚shadedjars4m 44spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 53sthe patch passed
_ Other Tests _
+1 💚unit0m 19shbase-metrics in the patch passed.
+1 💚unit0m 41shbase-hadoop-compat in the patch passed.
-1 ❌unit268m 41shbase-server in the patch failed.
296m 44s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 753c306885a3 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/testReport/
Max. process+thread count2452 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I was trying to get at with the optional stuff, regionservers can be pretty cpu and memory sensitive. Let's say a regionserver is doing 10k req/s. Every request is instrumented with MetricsRegionServer. So you are adding 2 calls to Object.ofNullablr for each request. The first one (region) will always be present, the second will be present anytime table metrics are enabled.

So that's 20k object allocations for really no reason. I don't think optionals are a good replacement for a null check.

For getTableRequestMetrics, I was thinking you'd create the optional only once when the region opens. So

tableRequestsmetrics = Optional.of(new TableRequestMetrics());
public Optional<TableRequestMetrics> getTableRequestMetrics() {
return tableRequestMetrics;
}

The optional Region param is only added for tests. Otherwise it's always non-null. You could just remove that null check on region and update the tests to pass a mocked Region.

Also I think the pre-commit hook is saying you need to rebase your PR

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec2m 30sDocker 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 _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall3m 30smaster passed
+1 💚compile2m 58smaster passed
+1 💚checkstyle0m 53smaster passed
+1 💚spotless0m 40sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 5smaster passed
-0 ⚠️patch1m 44sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 25sthe patch passed
+1 💚compile2m 54sthe patch passed
-0 ⚠️javac2m 22shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 53sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 29sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 40spatch has no errors when running spotless:check.
+1 💚spotbugs2m 34sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
43m 51s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/6/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 6e8e729691bc 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/6/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/6/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.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

You could just remove that null check on region and update the tests to pass a mocked Region.

Also I think the pre-commit hook is saying you need to rebase your PR

Thank you very much for your patient review.
I removed all null checks, but to be honest, I'm not sure if there is any corner case that I didn't think of. . . Let's wait for the CI results.
And of course, in addition to this, I still need to do some real-world testing on the final version.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

Actually, I have another question I would like to ask for your opinion.
I don't quite understand why TableQueryMeterMetrics needs to have a separate switch. They don't seem to have any extra overhead. Or even if it is necessary, I think it should be used as a separate JMX bean instead of being mixed with TableRequests.
What do you think about this?

Thank you!

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 12sDocker 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 _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall4m 16smaster passed
+1 💚compile1m 34smaster passed
+1 💚shadedjars5m 30sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 56smaster passed
-0 ⚠️patch6m 50sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall4m 24sthe patch passed
+1 💚compile1m 24sthe patch passed
+1 💚javac1m 24sthe patch passed
+1 💚shadedjars5m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 55sthe patch passed
_ Other Tests _
+1 💚unit0m 20shbase-metrics in the patch passed.
+1 💚unit0m 46shbase-hadoop-compat in the patch passed.
-1 ❌unit249m 26shbase-server in the patch failed.
280m 58s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f6bf7e844fb2 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/testReport/
Max. process+thread count2496 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

After removed the null check of MetricsTableRequests, found this error in CI:

2023-03-06T10:36:45,112 ERROR [RS_OPEN_PRIORITY_REGION-regionserver/10.2.174.39:0-0] coprocessor.CoprocessorHost(420): The coprocessor org.apache.hadoop.hbase.security.visibility.VisibilityController threw java.lang.NullPointerException: Cannot invoke "org.apache.hadoop.hbase.regionserver.metrics.MetricsTableRequests.updateTableWriteQueryMeter(long)" because the return value of "org.apache.hadoop.hbase.regionserver.HRegion.getMetricsTableRequests()" is null
java.lang.NullPointerException: Cannot invoke "org.apache.hadoop.hbase.regionserver.metrics.MetricsTableRequests.updateTableWriteQueryMeter(long)" because the return value of "org.apache.hadoop.hbase.regionserver.HRegion.getMetricsTableRequests()" is null
at org.apache.hadoop.hbase.regionserver.MetricsRegionServer.updateWriteQueryMeter(MetricsRegionServer.java:258) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:4711) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:4623) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.mutate(HRegion.java:5116) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.mutate(HRegion.java:5110) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.mutate(HRegion.java:5106) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.lambda$put$11(HRegion.java:3266) ~[classes/:?]
at org.apache.hadoop.hbase.trace.TraceUtil.trace(TraceUtil.java:216) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:3255) ~[classes/:?]
at org.apache.hadoop.hbase.security.visibility.DefaultVisibilityLabelServiceImpl.addSystemLabel(DefaultVisibilityLabelServiceImpl.java:218) ~[classes/:?]
at org.apache.hadoop.hbase.security.visibility.DefaultVisibilityLabelServiceImpl.init(DefaultVisibilityLabelServiceImpl.java:143) ~[classes/:?]
at org.apache.hadoop.hbase.security.visibility.VisibilityController.initVisibilityLabelService(VisibilityController.java:268) ~[classes/:?]
at org.apache.hadoop.hbase.security.visibility.VisibilityController.postOpen(VisibilityController.java:258) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$2.call(RegionCoprocessorHost.java:511) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$2.call(RegionCoprocessorHost.java:508) ~[classes/:?]
at org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:558) ~[classes/:?]
at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:631) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.postOpen(RegionCoprocessorHost.java:508) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:1101) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:955) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7724) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.openHRegionFromTableDir(HRegion.java:7679) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7654) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7613) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7569) ~[classes/:?]
at org.apache.hadoop.hbase.regionserver.handler.AssignRegionHandler.process(AssignRegionHandler.java:136) ~[classes/:?]
at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:100) ~[classes/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

That's because Coprocessor inited earlier than MetricsTableRequests.
So I just removed region null check and put MetricsTableRequests null check back.
Considering that the previous code also has non-empty check on tableMetrics and tableName, I don't think this will be worse.

And thank you for providing me the informations about Meter metrics!

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 57sDocker 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 _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 19smaster passed
+1 💚compile2m 58smaster passed
+1 💚checkstyle0m 53smaster passed
+1 💚spotless0m 40sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 6smaster passed
-0 ⚠️patch1m 45sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall3m 17sthe patch passed
+1 💚compile2m 57sthe patch passed
-0 ⚠️javac2m 24shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 53sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 14sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 40sthe patch passed
_ Other Tests _
+1 💚asflicense0m 27sThe patch does not generate ASF License warnings.
41m 52s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux cc908dda80c6 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count80 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/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.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 30sDocker 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 _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall2m 42smaster passed
+1 💚compile0m 56smaster passed
+1 💚shadedjars4m 32sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 38smaster passed
-0 ⚠️patch5m 30sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 47sthe patch passed
+1 💚compile0m 54sthe patch passed
+1 💚javac0m 54sthe patch passed
+1 💚shadedjars4m 34spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39sthe patch passed
_ Other Tests _
+1 💚unit0m 14shbase-metrics in the patch passed.
+1 💚unit0m 31shbase-hadoop-compat in the patch passed.
+1 💚unit215m 51shbase-server in the patch passed.
239m 17s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 7c0eebe15308 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/testReport/
Max. process+thread count2503 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/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 56sDocker 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 _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 24smaster passed
+1 💚compile1m 14smaster passed
+1 💚shadedjars4m 28sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 52smaster passed
-0 ⚠️patch5m 46sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 32sthe patch passed
+1 💚compile1m 15sthe patch passed
+1 💚javac1m 15sthe patch passed
+1 💚shadedjars4m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 51sthe patch passed
_ Other Tests _
+1 💚unit0m 20shbase-metrics in the patch passed.
+1 💚unit0m 41shbase-hadoop-compat in the patch passed.
-1 ❌unit217m 52shbase-server in the patch failed.
244m 45s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 90f201b34ed5 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 59fdaa2
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/testReport/
Max. process+thread count2525 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

Removed some unnecessary modify in RSRpcServices.

Failure test seems not related.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 8sDocker 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 _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall4m 19smaster passed
+1 💚compile3m 2smaster passed
+1 💚checkstyle0m 54smaster passed
+1 💚spotless0m 43sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 12smaster passed
-0 ⚠️patch1m 47sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall3m 20sthe patch passed
+1 💚compile2m 57sthe patch passed
-0 ⚠️javac2m 24shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 50sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 26sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 34sthe patch passed
_ Other Tests _
+1 💚asflicense0m 28sThe patch does not generate ASF License warnings.
43m 48s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 075f6febd6f3 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 37858bb
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/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.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 39sDocker 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 _
+0 🆗mvndep0m 20sMaven dependency ordering for branch
+1 💚mvninstall5m 54smaster passed
+1 💚compile1m 45smaster passed
+1 💚shadedjars6m 30sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 0smaster passed
-0 ⚠️patch7m 57sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall5m 0sthe patch passed
+1 💚compile1m 39sthe patch passed
+1 💚javac1m 39sthe patch passed
+1 💚shadedjars6m 23spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 52sthe patch passed
_ Other Tests _
+1 💚unit0m 23shbase-metrics in the patch passed.
+1 💚unit0m 53shbase-hadoop-compat in the patch passed.
+1 💚unit214m 32shbase-server in the patch passed.
250m 18s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 0838755d55c2 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 37858bb
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/testReport/
Max. process+thread count2837 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/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 28sDocker 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 _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 48smaster passed
+1 💚compile0m 58smaster passed
+1 💚shadedjars4m 39sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 40smaster passed
-0 ⚠️patch5m 39sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 50sthe patch passed
+1 💚compile0m 57sthe patch passed
+1 💚javac0m 57sthe patch passed
+1 💚shadedjars4m 40spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 40sthe patch passed
_ Other Tests _
+1 💚unit0m 15shbase-metrics in the patch passed.
+1 💚unit0m 29shbase-hadoop-compat in the patch passed.
-1 ❌unit255m 12shbase-server in the patch failed.
280m 59s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 7c578d19b19e 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 37858bb
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/testReport/
Max. process+thread count2543 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang

thangTang commented Mar 6, 2023

Copy link
Copy Markdown
ContributorAuthor

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @thangTang! This is looking great, and I appreciate the thorough testing doc.

I had a few more nitpick comments, and then I think we're good.

Finally, I think you still need to rebase on master. Note the CI comments say:

Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

So can you pull latest master, then rebase your branch on it and squash the commits? I just like to have the CI be totally green before merging.

In terms of the failing test, I agree it looks unrelated. Can you try running the failing test locally with your patch just to be 100%?

Once all of that is done, we'll be ready to merge. Thanks again!

}

}
Optional.ofNullable(metricsTableRequests).ifPresent(metrics -> metrics.removeRegistry());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you replace this and below with normal null checks?

}

public void updatePutBatch(HRegion region, long t) {
ifTableRequestsMetricsExist(region, metrics -> metrics.updatePutBatch(t));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you replace these with normal null checks? similarly not sure we need the overhead of a lambda.

(i had originally suggested a method like this back when the RSRpcServices diff was really large, but now that it's all nicely encapsulated I don't think it's needed.

* @param t time it took
*/
public void updatePut(long t) {
ifEnableTableLatenciesMetrics(() -> putTimeHistogram.update(t));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you repalce these lambda calls with normal if statements?

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 57sDocker 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 _
+0 🆗mvndep0m 16sMaven dependency ordering for branch
+1 💚mvninstall3m 33smaster passed
+1 💚compile2m 58smaster passed
+1 💚checkstyle0m 53smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 8smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall3m 20sthe patch passed
+1 💚compile2m 56sthe patch passed
-0 ⚠️javac2m 22shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 53sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 23sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 42spatch has no errors when running spotless:check.
+1 💚spotbugs2m 31sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
42m 39s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5072
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 400a42d735aa 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 586073d
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count86 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/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.

@bbeaudreaultbbeaudreault left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again @thangTang! This unified implementation is so much cleaner and great that we easily support removals now.

Assuming the CI comes back green, this looks good to me. Will merge once all green

@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 _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall3m 3smaster passed
+1 💚compile0m 55smaster passed
+1 💚shadedjars4m 33sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 39smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 45sthe patch passed
+1 💚compile0m 54sthe patch passed
+1 💚javac0m 54sthe patch passed
+1 💚shadedjars4m 33spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 41sthe patch passed
_ Other Tests _
+1 💚unit0m 17shbase-metrics in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit209m 47shbase-server in the patch passed.
233m 37s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f804c8f59633 5.4.0-1092-aws #100~18.04.2-Ubuntu SMP Tue Nov 29 08:39:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 586073d
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/testReport/
Max. process+thread count2489 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/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 57sDocker 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 _
+0 🆗mvndep0m 21sMaven dependency ordering for branch
+1 💚mvninstall3m 19smaster passed
+1 💚compile1m 15smaster passed
+1 💚shadedjars4m 27sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 50smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 29sthe patch passed
+1 💚compile1m 14sthe patch passed
+1 💚javac1m 14sthe patch passed
+1 💚shadedjars4m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 52sthe patch passed
_ Other Tests _
+1 💚unit0m 19shbase-metrics in the patch passed.
+1 💚unit0m 38shbase-hadoop-compat in the patch passed.
-1 ❌unit221m 5shbase-server in the patch failed.
248m 12s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5072
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 534d50b443e3 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 586073d
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/testReport/
Max. process+thread count2497 (vs. ulimit of 30000)
modulesC: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang

thangTang commented Mar 7, 2023

Copy link
Copy Markdown
ContributorAuthor

The new failed test seems also not related.

I tried to run TestHRegionWithInMemoryFlush and TestAsyncFSWALCorruptionDueToDanglingByteBuffer on my local, both passed.

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 32.58 s - in org.apache.hadoop.hbase.wal.TestAsyncFSWALCorruptionDueToDanglingByteBuffer
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.apache.hadoop.hbase.SystemExitRule$1 (file:/Users/tianhang.tang/workspaces/apache/hbase/hbase-common/target/test-classes/)
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.hbase.SystemExitRule$1
WARNING: System::setSecurityManager will be removed in a future release
[INFO] Tests run: 133, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 335.874 s - in org.apache.hadoop.hbase.regionserver.TestHRegionWithInMemoryFlush
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 134, Failures: 0, Errors: 0, Skipped: 0

@bbeaudreault
bbeaudreault merged commit 16864c7 into apache:masterMar 7, 2023
@bbeaudreault

Copy link
Copy Markdown
Contributor

@thangTang I tried cherry-pick to branch-2, but there are a bunch of merge conflicts. Any chance you can submit a backport PR for branch-2?

@thangTang

thangTang commented Mar 7, 2023 via email

Copy link
Copy Markdown
ContributorAuthor

@bbeaudreault

Copy link
Copy Markdown
Contributor

@thangTang also, I'm not sure how I missed this but I just realized that we didn't delete MetricsTableLatencies or MetricsTableLatenciesImpl classes. Those are now unused I believe, but the classes still exist. I think we might need another jira to delete those.

@thangTang

Copy link
Copy Markdown
ContributorAuthor

@thangTang also, I'm not sure how I missed this but I just realized that we didn't delete MetricsTableLatencies or MetricsTableLatenciesImpl classes. Those are now unused I believe, but the classes still exist. I think we might need another jira to delete those.

Oh... Sorry about that...
I think I can just open a new PR and push an Addendum commit?

@thangTang

Copy link
Copy Markdown
ContributorAuthor

Pls help me take a look at #5092.

If you think we need a single ticket, feel free to leave a msg to me and I will create a new one.

@bbeaudreault

Copy link
Copy Markdown
Contributor

Yes that works. I can take a look tomorrow morning my time. Also, we don't need a new jira for backport. We sometimes do that when doing a backport after the original jira was long resolved. But we haven't restocked this yet, so can just use the same jira

@thangTang

Copy link
Copy Markdown
ContributorAuthor

Yes that works. I can take a look tomorrow morning my time. Also, we don't need a new jira for backport. We sometimes do that when doing a backport after the original jira was long resolved. But we haven't restocked this yet, so can just use the same jira

Sorry, I just saw this message... I already opened a new issue for Backport this morning😂
Could see #5093

@bbeaudreault

Copy link
Copy Markdown
Contributor

I think I'm going to rename the title of your PR and rewrite the commit message when I merge, so that it can be associated with the original jira. As someone who often goes digging in jira to find when or why changes occurred, I think it's much nicer to keep the backports in the original jira if at all possible. So once I merge we can resolve your new jira as Won't Do or Not A Problem or something

@thangTang

Copy link
Copy Markdown
ContributorAuthor

I think I'm going to rename the title of your PR and rewrite the commit message when I merge, so that it can be associated with the original jira. As someone who often goes digging in jira to find when or why changes occurred, I think it's much nicer to keep the backports in the original jira if at all possible. So once I merge we can resolve your new jira as Won't Do or Not A Problem or something

Hi no need to do this by yourself @bbeaudreault , if you think so, just give me a few minutes to rebase my commit and re-push it, then you can just review and merge: )

@bbeaudreault

bbeaudreault commented Mar 8, 2023

Copy link
Copy Markdown
Contributor

@thangTang no worries -- it's easy for me to do in the github UI when I merge. Github gives me a chance to rewrite the commit (which we use for adding the Signed-off-by tags and such). I can just change it there.

I'm just reviewing it now, so hopefully will merge soon

@thangTang

thangTang commented Mar 8, 2023 via email

Copy link
Copy Markdown
ContributorAuthor

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

@thangTang@Apache-HBase@bbeaudreault