[
https://issues.apache.org/jira/browse/HBASE-29729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Charles Connell updated HBASE-29729:
------------------------------------
Fix Version/s: 2.7.0
2.6.5
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Add per-region table descriptor hash to RegionServer JMX metrics
> ----------------------------------------------------------------
>
> Key: HBASE-29729
> URL: https://issues.apache.org/jira/browse/HBASE-29729
> Project: HBase
> Issue Type: Improvement
> Components: metrics, regionserver
> Affects Versions: 2.6.4
> Reporter: Alex Hughes
> Priority: Minor
> Labels: pull-request-available
> Fix For: 2.7.0, 3.0.0-beta-2, 2.6.5
>
>
> HBase's lazy table modification feature allows operators to modify table
> descriptors without immediately affecting running regions. Regions adopt the
> new descriptor when they reopen. This enables controlled, progressive
> rollouts of descriptor changes, but there's currently no way to
> programmatically query which regions are using which descriptor version
> during a rollout.
> Table descriptor modifications (compression changes, encoding changes, TTL
> updates, etc.) can be risky on large production tables. A progressive canary
> rollout approach significantly reduces blast radius: modify the descriptor
> with the lazy flag, selectively reopen small batches of canary regions,
> validate their health, then continue or roll back. However, without
> visibility into which regions have adopted the new descriptor, operators must
> maintain complex external tracking state that's error-prone and doesn't
> handle region splits/merges gracefully.
> This JIRA proposes adding a {{tableDescriptorHash}} metric to each region's
> JMX output, exposing a SHA-256 hash of the region's current table descriptor.
> The hash would be computed once when the region opens and cached for its
> lifetime (zero performance impact). Operators can then query all regions via
> existing JMX endpoints and group by hash to track rollout progress, verify
> completion, and build idempotent rollout systems that query current reality
> from HBase rather than maintaining fragile external state. The metric returns
> {{UNKNOWN}} on error to avoid breaking metrics collection, and is fully
> backward compatible as it only adds a new field to existing JMX output.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)