[ 
https://issues.apache.org/jira/browse/HBASE-29729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18045209#comment-18045209
 ] 

Charles Connell commented on HBASE-29729:
-----------------------------------------

Merged to master, cherry-picked to branch-3. [~ajkhughes] the patch does not 
cleanly apply to branch-2, so please submit a PR for that.

> 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: 3.0.0-beta-2
>
>
> 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)

Reply via email to