Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-27681 Refactor Table Latency Metrics #5072

Merged
merged 1 commit into from
Mar 7, 2023

Conversation

thangTang
Copy link
Contributor

No description provided.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 16s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for branch
+1 💚 mvninstall 4m 40s master passed
+1 💚 compile 3m 38s master passed
+1 💚 checkstyle 0m 55s master passed
+1 💚 spotless 0m 46s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 17s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for patch
+1 💚 mvninstall 3m 28s the patch passed
+1 💚 compile 2m 56s the patch passed
-0 ⚠️ javac 2m 27s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 29s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
-1 ❌ spotbugs 1m 39s hbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
45m 41s
Reason Tests
FindBugs module:hbase-server
Unread field:MetricsTableLatencies.java:[line 116]
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Eclipse Adoptium-11.0.17+8
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
spotbugs https://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 count 85 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 26s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 33s Maven dependency ordering for branch
+1 💚 mvninstall 5m 19s master passed
+1 💚 compile 1m 15s master passed
+1 💚 shadedjars 5m 22s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 49s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 4m 40s the patch passed
+1 💚 compile 1m 15s the patch passed
+1 💚 javac 1m 15s the patch passed
+1 💚 shadedjars 5m 19s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 45s the patch passed
_ Other Tests _
+1 💚 unit 0m 17s hbase-metrics in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 213m 15s hbase-server in the patch passed.
244m 43s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/testReport/
Max. process+thread count 2656 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 0s Docker mode activated.
-0 ⚠️ yetus 0m 4s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for branch
+1 💚 mvninstall 5m 45s master passed
+1 💚 compile 1m 35s master passed
+1 💚 shadedjars 5m 16s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 57s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 5m 29s the patch passed
+1 💚 compile 1m 31s the patch passed
+1 💚 javac 1m 31s the patch passed
+1 💚 shadedjars 5m 18s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 58s the patch passed
_ Other Tests _
+1 💚 unit 0m 21s hbase-metrics in the patch passed.
+1 💚 unit 0m 52s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 320m 49s hbase-server in the patch failed.
355m 12s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/testReport/
Max. process+thread count 2388 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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
Copy link
Contributor Author

thangTang commented Mar 2, 2023

  • 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
Contributor Author

Convergence of null check, and renamed metricsName to tableRequests.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 40s master passed
+1 💚 compile 2m 58s master passed
+1 💚 checkstyle 0m 52s master passed
+1 💚 spotless 0m 44s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 11s master passed
-0 ⚠️ patch 1m 46s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 28s the patch passed
+1 💚 compile 2m 54s the patch passed
-0 ⚠️ javac 2m 22s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 25s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 40s patch has no errors when running spotless:check.
-1 ❌ spotbugs 1m 39s hbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚 asflicense 0m 30s The patch does not generate ASF License warnings.
42m 38s
Reason Tests
FindBugs module:hbase-server
Unread field:MetricsTableRequests.java:[line 116]
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Eclipse Adoptium-11.0.17+8
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
spotbugs https://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 count 81 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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:

public void updateGet(Region region, long t) {
    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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 25s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 3s master passed
+1 💚 compile 0m 55s master passed
+1 💚 shadedjars 4m 35s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 40s master passed
-0 ⚠️ patch 5m 34s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 45s the patch passed
+1 💚 compile 0m 54s the patch passed
+1 💚 javac 0m 54s the patch passed
+1 💚 shadedjars 4m 33s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s the patch passed
_ Other Tests _
+1 💚 unit 0m 14s hbase-metrics in the patch passed.
+1 💚 unit 0m 31s hbase-hadoop-compat in the patch passed.
+1 💚 unit 207m 54s hbase-server in the patch passed.
231m 20s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/testReport/
Max. process+thread count 2505 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 55s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for branch
+1 💚 mvninstall 3m 38s master passed
+1 💚 compile 1m 15s master passed
+1 💚 shadedjars 4m 26s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 52s master passed
-0 ⚠️ patch 5m 45s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 3m 22s the patch passed
+1 💚 compile 1m 14s the patch passed
+1 💚 javac 1m 14s the patch passed
+1 💚 shadedjars 4m 27s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 51s the patch passed
_ Other Tests _
+1 💚 unit 0m 19s hbase-metrics in the patch passed.
+1 💚 unit 0m 41s hbase-hadoop-compat in the patch passed.
+1 💚 unit 216m 34s hbase-server in the patch passed.
245m 12s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / d2b0074
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/testReport/
Max. process+thread count 2514 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/2/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

thangTang commented Mar 3, 2023

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
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
Contributor Author

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 3m 20s master passed
+1 💚 compile 2m 57s master passed
+1 💚 checkstyle 0m 52s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 8s master passed
-0 ⚠️ patch 1m 45s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 25s the patch passed
+1 💚 compile 2m 54s the patch passed
-0 ⚠️ javac 2m 22s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 54s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 11s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 33s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
42m 8s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 86 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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
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
Contributor Author

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
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
Contributor Author

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 27s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 22s Maven dependency ordering for branch
+1 💚 mvninstall 2m 46s master passed
+1 💚 compile 0m 55s master passed
+1 💚 shadedjars 4m 36s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 38s master passed
-0 ⚠️ patch 5m 34s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for patch
+1 💚 mvninstall 2m 43s the patch passed
+1 💚 compile 0m 54s the patch passed
+1 💚 javac 0m 54s the patch passed
+1 💚 shadedjars 4m 32s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 38s the patch passed
_ Other Tests _
+1 💚 unit 0m 14s hbase-metrics in the patch passed.
+1 💚 unit 0m 31s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 211m 8s hbase-server in the patch failed.
234m 32s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Temurin-1.8.0_352-b08
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/testReport/
Max. process+thread count 2486 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 0s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for branch
+1 💚 mvninstall 3m 26s master passed
+1 💚 compile 1m 14s master passed
+1 💚 shadedjars 4m 27s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 50s master passed
-0 ⚠️ patch 5m 43s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 3m 27s the patch passed
+1 💚 compile 1m 14s the patch passed
+1 💚 javac 1m 14s the patch passed
+1 💚 shadedjars 4m 27s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 50s the patch passed
_ Other Tests _
+1 💚 unit 0m 19s hbase-metrics in the patch passed.
+1 💚 unit 0m 41s hbase-hadoop-compat in the patch passed.
+1 💚 unit 217m 46s hbase-server in the patch passed.
244m 48s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/testReport/
Max. process+thread count 2510 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/3/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 3s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 3m 25s master passed
+1 💚 compile 2m 56s master passed
+1 💚 checkstyle 0m 50s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 4s master passed
-0 ⚠️ patch 1m 46s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 19s the patch passed
+1 💚 compile 2m 56s the patch passed
-0 ⚠️ javac 2m 23s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 54s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 14s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 42s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 34s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
41m 58s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 85 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 26s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for branch
+1 💚 mvninstall 2m 46s master passed
+1 💚 compile 0m 54s master passed
+1 💚 shadedjars 4m 34s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s master passed
-0 ⚠️ patch 5m 31s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 45s the patch passed
+1 💚 compile 0m 55s the patch passed
+1 💚 javac 0m 55s the patch passed
+1 💚 shadedjars 4m 33s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s the patch passed
_ Other Tests _
+1 💚 unit 0m 14s hbase-metrics in the patch passed.
+1 💚 unit 0m 31s hbase-hadoop-compat in the patch passed.
+1 💚 unit 207m 35s hbase-server in the patch passed.
230m 47s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/testReport/
Max. process+thread count 2431 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 50s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for branch
+1 💚 mvninstall 3m 23s master passed
+1 💚 compile 1m 14s master passed
+1 💚 shadedjars 4m 26s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 50s master passed
-0 ⚠️ patch 5m 43s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 3m 23s the patch passed
+1 💚 compile 1m 15s the patch passed
+1 💚 javac 1m 15s the patch passed
+1 💚 shadedjars 4m 28s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 51s the patch passed
_ Other Tests _
+1 💚 unit 0m 19s hbase-metrics in the patch passed.
+1 💚 unit 0m 42s hbase-hadoop-compat in the patch passed.
+1 💚 unit 215m 56s hbase-server in the patch passed.
242m 26s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/testReport/
Max. process+thread count 2486 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/4/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 3m 23s master passed
+1 💚 compile 2m 57s master passed
+1 💚 checkstyle 0m 53s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 6s master passed
-0 ⚠️ patch 1m 45s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 22s the patch passed
+1 💚 compile 2m 55s the patch passed
-0 ⚠️ javac 2m 23s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
-0 ⚠️ checkstyle 0m 35s hbase-server: The patch generated 1 new + 24 unchanged - 0 fixed = 25 total (was 24)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 13m 9s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
-1 ❌ spotless 0m 37s patch has 21 errors when running spotless:check, run spotless:apply to fix.
+1 💚 spotbugs 2m 44s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
43m 31s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
javac https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 82 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 3m 0s master passed
+1 💚 compile 0m 56s master passed
+1 💚 shadedjars 4m 35s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 40s master passed
-0 ⚠️ patch 5m 33s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 47s the patch passed
+1 💚 compile 0m 56s the patch passed
+1 💚 javac 0m 56s the patch passed
+1 💚 shadedjars 4m 33s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s the patch passed
_ Other Tests _
+1 💚 unit 0m 14s hbase-metrics in the patch passed.
+1 💚 unit 0m 31s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 210m 25s hbase-server in the patch failed.
234m 13s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Temurin-1.8.0_352-b08
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/testReport/
Max. process+thread count 2409 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 39s Docker mode activated.
-0 ⚠️ yetus 0m 4s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 3m 30s master passed
+1 💚 compile 1m 16s master passed
+1 💚 shadedjars 4m 44s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 53s master passed
-0 ⚠️ patch 6m 3s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 3m 35s the patch passed
+1 💚 compile 1m 18s the patch passed
+1 💚 javac 1m 18s the patch passed
+1 💚 shadedjars 4m 44s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 53s the patch passed
_ Other Tests _
+1 💚 unit 0m 19s hbase-metrics in the patch passed.
+1 💚 unit 0m 41s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 268m 41s hbase-server in the patch failed.
296m 44s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/testReport/
Max. process+thread count 2452 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/5/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 30s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 3m 30s master passed
+1 💚 compile 2m 58s master passed
+1 💚 checkstyle 0m 53s master passed
+1 💚 spotless 0m 40s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 5s master passed
-0 ⚠️ patch 1m 44s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 25s the patch passed
+1 💚 compile 2m 54s the patch passed
-0 ⚠️ javac 2m 22s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 29s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 40s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 34s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
43m 51s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 85 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/6/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

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
Contributor Author

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 12s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 4m 16s master passed
+1 💚 compile 1m 34s master passed
+1 💚 shadedjars 5m 30s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 56s master passed
-0 ⚠️ patch 6m 50s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for patch
+1 💚 mvninstall 4m 24s the patch passed
+1 💚 compile 1m 24s the patch passed
+1 💚 javac 1m 24s the patch passed
+1 💚 shadedjars 5m 27s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 55s the patch passed
_ Other Tests _
+1 💚 unit 0m 20s hbase-metrics in the patch passed.
+1 💚 unit 0m 46s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 249m 26s hbase-server in the patch failed.
280m 58s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/testReport/
Max. process+thread count 2496 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/7/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 19s master passed
+1 💚 compile 2m 58s master passed
+1 💚 checkstyle 0m 53s master passed
+1 💚 spotless 0m 40s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 6s master passed
-0 ⚠️ patch 1m 45s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for patch
+1 💚 mvninstall 3m 17s the patch passed
+1 💚 compile 2m 57s the patch passed
-0 ⚠️ javac 2m 24s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 14s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 40s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 27s The patch does not generate ASF License warnings.
41m 52s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 80 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 30s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 2m 42s master passed
+1 💚 compile 0m 56s master passed
+1 💚 shadedjars 4m 32s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 38s master passed
-0 ⚠️ patch 5m 30s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 47s the patch passed
+1 💚 compile 0m 54s the patch passed
+1 💚 javac 0m 54s the patch passed
+1 💚 shadedjars 4m 34s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s the patch passed
_ Other Tests _
+1 💚 unit 0m 14s hbase-metrics in the patch passed.
+1 💚 unit 0m 31s hbase-hadoop-compat in the patch passed.
+1 💚 unit 215m 51s hbase-server in the patch passed.
239m 17s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/testReport/
Max. process+thread count 2503 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 56s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 24s master passed
+1 💚 compile 1m 14s master passed
+1 💚 shadedjars 4m 28s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 52s master passed
-0 ⚠️ patch 5m 46s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 3m 32s the patch passed
+1 💚 compile 1m 15s the patch passed
+1 💚 javac 1m 15s the patch passed
+1 💚 shadedjars 4m 27s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 51s the patch passed
_ Other Tests _
+1 💚 unit 0m 20s hbase-metrics in the patch passed.
+1 💚 unit 0m 41s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 217m 52s hbase-server in the patch failed.
244m 45s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 59fdaa2
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/testReport/
Max. process+thread count 2525 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/8/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

Removed some unnecessary modify in RSRpcServices.

Failure test seems not related.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 8s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 4m 19s master passed
+1 💚 compile 3m 2s master passed
+1 💚 checkstyle 0m 54s master passed
+1 💚 spotless 0m 43s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 12s master passed
-0 ⚠️ patch 1m 47s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 3m 20s the patch passed
+1 💚 compile 2m 57s the patch passed
-0 ⚠️ javac 2m 24s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 50s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 26s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 34s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 28s The patch does not generate ASF License warnings.
43m 48s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 37858bb
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 85 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 39s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for branch
+1 💚 mvninstall 5m 54s master passed
+1 💚 compile 1m 45s master passed
+1 💚 shadedjars 6m 30s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 0s master passed
-0 ⚠️ patch 7m 57s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for patch
+1 💚 mvninstall 5m 0s the patch passed
+1 💚 compile 1m 39s the patch passed
+1 💚 javac 1m 39s the patch passed
+1 💚 shadedjars 6m 23s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 52s the patch passed
_ Other Tests _
+1 💚 unit 0m 23s hbase-metrics in the patch passed.
+1 💚 unit 0m 53s hbase-hadoop-compat in the patch passed.
+1 💚 unit 214m 32s hbase-server in the patch passed.
250m 18s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 37858bb
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/testReport/
Max. process+thread count 2837 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 28s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 3m 48s master passed
+1 💚 compile 0m 58s master passed
+1 💚 shadedjars 4m 39s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 40s master passed
-0 ⚠️ patch 5m 39s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 50s the patch passed
+1 💚 compile 0m 57s the patch passed
+1 💚 javac 0m 57s the patch passed
+1 💚 shadedjars 4m 40s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 40s the patch passed
_ Other Tests _
+1 💚 unit 0m 15s hbase-metrics in the patch passed.
+1 💚 unit 0m 29s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 255m 12s hbase-server in the patch failed.
280m 59s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 37858bb
Default Java Temurin-1.8.0_352-b08
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/testReport/
Max. process+thread count 2543 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/9/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

thangTang commented Mar 6, 2023

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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!

@@ -962,6 +970,7 @@ long initialize(final CancelableProgressable reporter) throws IOException {
}

}
Optional.ofNullable(metricsTableRequests).ifPresent(metrics -> metrics.removeRegistry());
Copy link
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
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
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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for branch
+1 💚 mvninstall 3m 33s master passed
+1 💚 compile 2m 58s master passed
+1 💚 checkstyle 0m 53s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 8s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for patch
+1 💚 mvninstall 3m 20s the patch passed
+1 💚 compile 2m 56s the patch passed
-0 ⚠️ javac 2m 22s hbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 12m 23s Patch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚 spotless 0m 42s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 31s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
42m 39s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 586073d
Default Java Eclipse Adoptium-11.0.17+8
javac https://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 count 86 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@bbeaudreault bbeaudreault left a comment

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 26s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 3m 3s master passed
+1 💚 compile 0m 55s master passed
+1 💚 shadedjars 4m 33s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 39s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 45s the patch passed
+1 💚 compile 0m 54s the patch passed
+1 💚 javac 0m 54s the patch passed
+1 💚 shadedjars 4m 33s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 41s the patch passed
_ Other Tests _
+1 💚 unit 0m 17s hbase-metrics in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 209m 47s hbase-server in the patch passed.
233m 37s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 586073d
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/testReport/
Max. process+thread count 2489 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 57s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for branch
+1 💚 mvninstall 3m 19s master passed
+1 💚 compile 1m 15s master passed
+1 💚 shadedjars 4m 27s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 50s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 3m 29s the patch passed
+1 💚 compile 1m 14s the patch passed
+1 💚 javac 1m 14s the patch passed
+1 💚 shadedjars 4m 27s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 52s the patch passed
_ Other Tests _
+1 💚 unit 0m 19s hbase-metrics in the patch passed.
+1 💚 unit 0m 38s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 221m 5s hbase-server in the patch failed.
248m 12s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 586073d
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/testReport/
Max. process+thread count 2497 (vs. ulimit of 30000)
modules C: hbase-metrics hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5072/10/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@thangTang
Copy link
Contributor Author

thangTang commented Mar 7, 2023

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:master Mar 7, 2023
@bbeaudreault
Copy link
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
Copy link
Contributor Author

thangTang commented Mar 7, 2023 via email

@bbeaudreault
Copy link
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
Contributor Author

@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
Contributor Author

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
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
Contributor Author

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
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
Contributor Author

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
Copy link
Contributor

bbeaudreault commented Mar 8, 2023

@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
Copy link
Contributor Author

thangTang commented Mar 8, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants