Skip to content

Conversation

@ajkh88
Copy link
Contributor

@ajkh88 ajkh88 commented Dec 16, 2025

This code was already merged to master - this PR is to merge the functionality into branch-2.

When table descriptors are modified (e.g., changing compression settings, TTL, or column family configurations), region servers need to reopen regions to pick up these changes. However, there's currently no reliable way to detect which regions are running with stale table descriptors versus the current configuration. This makes it difficult to verify that descriptor changes have propagated correctly across all regions, increasing the risk of configuration drift and making deployment automation more challenging.

This PR adds a tableDescriptorHash field to the per-region JMX metrics exposed by region servers. The hash is a SHA-256 digest of the serialized TableDescriptor protobuf, computed once when the region is opened and exposed through the MetricsRegionWrapper interface. Regions opened with identical table descriptors will produce identical hashes, while any configuration change (compression, TTL, block size, etc.) will produce a different hash. This enables monitoring systems and deployment automation to quickly identify regions that need reopening after table descriptor changes, without parsing and comparing complex nested configuration objects.

@charlesconnell charlesconnell merged commit 889c349 into apache:branch-2 Dec 16, 2025
1 check was pending
@charlesconnell charlesconnell deleted the HBASE-29729/add-table-descriptor-hash-metric-branch-2 branch December 16, 2025 15:54
charlesconnell pushed a commit that referenced this pull request Dec 16, 2025
Co-authored-by: Alex Hughes <[email protected]>
Signed-off by: Ray Mattingly <[email protected]>
@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 46s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
_ branch-2 Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for branch
+1 💚 mvninstall 3m 24s branch-2 passed
+1 💚 compile 4m 30s branch-2 passed
+1 💚 checkstyle 1m 10s branch-2 passed
+1 💚 spotbugs 3m 7s branch-2 passed
+1 💚 spotless 0m 50s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 19s Maven dependency ordering for patch
+1 💚 mvninstall 3m 1s the patch passed
+1 💚 compile 4m 24s the patch passed
+1 💚 javac 4m 24s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 0m 8s /results-checkstyle-hbase-hadoop2-compat.txt hbase-hadoop2-compat: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1 💚 spotbugs 3m 30s the patch passed
+1 💚 hadoopcheck 16m 48s Patch does not cause any errors with Hadoop 2.10.2 or 3.3.6 3.4.1.
-1 ❌ spotless 0m 14s patch has 39 errors when running spotless:check, run spotless:apply to fix.
_ Other Tests _
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
46m 35s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #7556
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
uname Linux b3a01bed0f8f 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision branch-2 / 9db88da
Default Java Eclipse Adoptium-11.0.23+9
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 78 (vs. ulimit of 30000)
modules C: hbase-hadoop-compat hbase-hadoop2-compat hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 48s Docker mode activated.
-0 ⚠️ yetus 0m 6s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2 Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 50s branch-2 passed
+1 💚 compile 1m 26s branch-2 passed
+1 💚 javadoc 1m 8s branch-2 passed
+1 💚 shadedjars 5m 32s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 28s the patch passed
+1 💚 compile 1m 25s the patch passed
+1 💚 javac 1m 25s the patch passed
+1 💚 javadoc 1m 2s the patch passed
+1 💚 shadedjars 5m 28s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 0m 25s hbase-hadoop-compat in the patch passed.
+1 💚 unit 0m 22s hbase-hadoop2-compat in the patch passed.
+1 💚 unit 7m 51s hbase-client in the patch passed.
+1 💚 unit 214m 36s hbase-server in the patch passed.
251m 49s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
GITHUB PR #7556
Optional Tests javac javadoc unit compile shadedjars
uname Linux 8dcfffb974e7 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision branch-2 / 9db88da
Default Java Temurin-1.8.0_412-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/testReport/
Max. process+thread count 3352 (vs. ulimit of 30000)
modules C: hbase-hadoop-compat hbase-hadoop2-compat hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 43s Docker mode activated.
-0 ⚠️ yetus 0m 7s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2 Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 3m 22s branch-2 passed
+1 💚 compile 1m 45s branch-2 passed
+1 💚 javadoc 1m 13s branch-2 passed
+1 💚 shadedjars 6m 47s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for patch
+1 💚 mvninstall 3m 6s the patch passed
+1 💚 compile 1m 42s the patch passed
+1 💚 javac 1m 42s the patch passed
+1 💚 javadoc 1m 10s the patch passed
+1 💚 shadedjars 6m 49s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 0m 28s hbase-hadoop-compat in the patch passed.
+1 💚 unit 0m 30s hbase-hadoop2-compat in the patch passed.
+1 💚 unit 8m 14s hbase-client in the patch passed.
+1 💚 unit 233m 34s hbase-server in the patch passed.
276m 7s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #7556
Optional Tests javac javadoc unit compile shadedjars
uname Linux 33f80cee11a9 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision branch-2 / 9db88da
Default Java Eclipse Adoptium-11.0.23+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/testReport/
Max. process+thread count 3276 (vs. ulimit of 30000)
modules C: hbase-hadoop-compat hbase-hadoop2-compat hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 1m 5s Docker mode activated.
-0 ⚠️ yetus 0m 7s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2 Compile Tests _
+0 🆗 mvndep 0m 23s Maven dependency ordering for branch
+1 💚 mvninstall 5m 35s branch-2 passed
+1 💚 compile 3m 6s branch-2 passed
+1 💚 javadoc 2m 16s branch-2 passed
+1 💚 shadedjars 9m 53s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 26s Maven dependency ordering for patch
+1 💚 mvninstall 5m 1s the patch passed
+1 💚 compile 2m 43s the patch passed
+1 💚 javac 2m 43s the patch passed
+1 💚 javadoc 1m 49s the patch passed
+1 💚 shadedjars 9m 32s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 0m 38s hbase-hadoop-compat in the patch passed.
+1 💚 unit 0m 42s hbase-hadoop2-compat in the patch passed.
+1 💚 unit 9m 8s hbase-client in the patch passed.
+1 💚 unit 232m 29s hbase-server in the patch passed.
290m 20s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #7556
Optional Tests javac javadoc unit compile shadedjars
uname Linux 6cb196b9649d 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision branch-2 / 9db88da
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/testReport/
Max. process+thread count 3180 (vs. ulimit of 30000)
modules C: hbase-hadoop-compat hbase-hadoop2-compat hbase-client hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7556/1/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

Sign up for free to 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