PHOENIX-7873: Incorporate HBASE-29974 filter seek hints (compat-2.6.6 module) [5.3]#2499
Open
shubham-roy wants to merge 5 commits into
Open
PHOENIX-7873: Incorporate HBASE-29974 filter seek hints (compat-2.6.6 module) [5.3]#2499shubham-roy wants to merge 5 commits into
shubham-roy wants to merge 5 commits into
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…epMgmt, enforcer, assembly) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…at filters Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…nherit hint forwarding DelegateFilter now extends CompatDelegateFilter (removing its own shadowing delegate field) so that the version-gated getSkipHint / getHintForRejectedRow forwarding added in the 2.6.6 compat module is inherited by DelegateFilter and its subclasses (AllVersionsIndexRebuildFilter, UnverifiedRowFilter). A structural-only test (DelegateFilterStructureTest) is added in phoenix-core, alongside the existing filter tests; it asserts the inheritance wiring without referencing the new Filter methods, so it compiles under every hbase.profile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Expand the two TODO(PHOENIX-7873) markers into step-by-step instructions for the GA cutover (flip both 2.6.6-SNAPSHOT values to 2.6.6-hadoop3 in lockstep, remove the comments), and cross-reference each marker to the other so neither is missed. No functional change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
Backport of PHOENIX-7873 to the
5.3branch. Incorporates the new HBase filter seek-hint methods —getSkipHint/getHintForRejectedRow, added toFilterby HBASE-29974 and propagated through composite filters byHBASE-30150 — into Phoenix's wrapper filters, so a wrapped delegate's seek hint is no longer
swallowed.
Identical to the master PR except for the new module pom's parent version (
5.3.2-SNAPSHOT). Because theseFiltermethods exist only in HBase 2.6.6+,this follows the PHOENIX-7731 precedent (commit
0d71499104) and adds a new version-gated compat modulephoenix-hbase-compat-2.6.6(a copy ofphoenix-hbase-compat-2.6.4) where the gated@Overrides live. Older compat modules are untouched.phoenix-hbase-compat-2.6.6— verbatim copy of2.6.4, plus the two seek-hint forwarding overrides:CompatDelegateFilter— unconditional forwarding to the delegate.CompatPagingFilter— null-guarded forwarding (falls back tosuperwhen there is no delegate).DelegateFilterre-parented fromFilterBasetoCompatDelegateFilter, so it and its subclasses (AllVersionsIndexRebuildFilter,UnverifiedRowFilter) inherit the forwarding.PagingFilteralready extendsCompatPagingFilter(unchanged).pom.xml): new module in<modules>;hbase-2.6.5.runtime.versionsplit out; the2.6family profile repointed to the2.6.6module; a new pinned
hbase.profile=2.6.5profile for the displaced2.6.5line; 5dependencyManagemententries; enforcer beanshell clause; assemblycoverage dependency.
Class hierarchy after this change:
Why are the changes needed?
HBASE-29974 lets a
Filterreturn a seek hint when it skips/rejects a row so the scanner can jump ahead instead of scanning cell-by-cell, and HBASE-30150makes composite filters propagate that hint. Phoenix's wrapper filters (
DelegateFilter,PagingFilter) extendFilterBase, whose defaultimplementations of these methods return no hint. As a result, when one of these wrappers wraps a delegate that does produce a seek hint, the hint is
swallowed and the scan loses the skip optimization. Forwarding the hint from the delegate restores that optimization for wrapped filters on HBase 2.6.6+.
Does this PR introduce any user-facing change?
No functional/result change. This is a scan-performance behavior change that only takes effect on HBase 2.6.6+: wrapped delegate filters can now
contribute seek hints instead of having them swallowed. Query results are unchanged; only how efficiently the scanner skips rows/cells differs. Against
all currently released Phoenix/HBase versions there is no observable change, since the methods do not exist before HBase 2.6.6.
How was this patch tested?
Verified locally (JDK 8) against a locally-installed HBase
2.6.6-SNAPSHOT, on the5.3branch:-Dhbase.profile=2.6build —phoenix-hbase-compat-2.6.6+phoenix-core-client+phoenix-corecompile; new forwarding unit tests pass(
CompatDelegateFilterTest,CompatPagingFilterTest) plus the structural test.DelegateFilterStructureTest,instanceof-only) compilesand passes where the new
Filtermethods are absent, proving the version gating.-Dhbase.profile=2.6.5build — the displaced2.6.4module still compiles against2.6.5-hadoop3; enforcer passes.Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Anthropic Claude Opus 4.8)