Skip to content

HBASE-30192 ColumnFamilyDescriptor.getConfigurationValue should also read the values map#8295

Merged
junegunn merged 1 commit into
apache:masterfrom
junegunn:HBASE-30192
Jun 9, 2026
Merged

HBASE-30192 ColumnFamilyDescriptor.getConfigurationValue should also read the values map#8295
junegunn merged 1 commit into
apache:masterfrom
junegunn:HBASE-30192

Conversation

@junegunn

@junegunn junegunn commented Jun 1, 2026

Copy link
Copy Markdown
Member

Since shell writes CF CONFIGURATION to values map (HBASE-20819), getConfigurationValue should access it before checking the legacy configuration map.

Note: changes behavior of a public method.

…read the values map

Since shell writes CF CONFIGURATION to values map (HBASE-20819),
getConfigurationValue should access it before checking
the legacy configuration map.

Note: changes behavior of a public method.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes HBASE-30192 so that ColumnFamilyDescriptor.getConfigurationValue also consults the values map, since the HBase shell writes CF CONFIGURATION entries there (HBASE-20819). Previously, settings made via the shell were invisible to code paths that read via getConfigurationValue, causing, e.g., the FIFO compaction sanity check to miss shell-configured policies.

Changes:

  • getConfigurationValue now returns the value from the values map first, falling back to the legacy configuration map.
  • Javadoc on the interface updated to describe the new lookup order.
  • Added unit tests for the fallback behavior and an end-to-end sanity-check test exercising both setValue and setConfiguration paths for FIFO compaction.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.java Updated Javadoc to reflect new lookup precedence.
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java Implementation: check values map before configuration map.
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java Unit tests verifying fallback and precedence.
hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestTableDescriptorChecker.java Sanity-check test covering FIFO policy via both setValue and setConfiguration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@charlesconnell

Copy link
Copy Markdown
Contributor

Clearly your change is in line with the spirit of how getConfigurationValue() was meant to work

@guluo2016 guluo2016 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks

@junegunn junegunn merged commit d2ebed6 into apache:master Jun 9, 2026
10 of 13 checks passed
@junegunn

junegunn commented Jun 9, 2026

Copy link
Copy Markdown
Member Author

Thank you @charlesconnell and @guluo2016!

junegunn added a commit that referenced this pull request Jun 9, 2026
…read the values map (#8295)

Since shell writes CF CONFIGURATION to values map (HBASE-20819),
getConfigurationValue should access it before checking
the legacy configuration map.

Note: changes behavior of a public method.

Signed-off-by: Charles Connell <cconnell@apache.org>
Signed-off-by: Peng Lu <lupeng@apache.org>
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.

4 participants