[ 
https://issues.apache.org/jira/browse/HBASE-29729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Hughes updated HBASE-29729:
--------------------------------
    Release Note: Adds a tableDescriptorHash metric to region JMX output, 
exposing a SHA-256 hash of the region's current table descriptor. This enables 
operators to track which regions have adopted new descriptors during lazy table 
modifications, supporting progressive canary rollouts without maintaining 
external state. The hash is computed once at region open and cached for the 
region's lifetime.

> 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)

Reply via email to