shubham-roy opened a new pull request, #8486:
URL: https://github.com/apache/hbase/pull/8486
(cherry picked from commit e45818ee9aeb2c8fb1be72ecf17a5d8584011147)
Description:
Backport of HBASE-30150 to branch-2.5, cherry-picked from master (commit
`e45818ee9ae`, PR #8217).
Stacks on the HBASE-29974 branch-2.5 backport (#8464), which introduced the
`Filter#getSkipHint()` / `Filter#getHintForRejectedRow()` API this change
propagates through composite filters.
### What this does
Composite/wrapping filters now delegate the seek-hint methods to their
sub-filters instead of silently dropping the hints:
- `FilterList` (`MUST_PASS_ALL` / `MUST_PASS_ONE`), `SkipFilter`, and
`WhileMatchFilter` delegate `getHintForRejectedRow()` and `getSkipHint()`
and merge the results — maximal-step merge for AND, minimal-step (null if
any sub-filter returns null) for OR, consistent with the existing
`getNextCellHint()` behavior.
- `ColumnRangeFilter`, `ColumnPrefixFilter`, and
`MultipleColumnPrefixFilter`
gain `getSkipHint()` implementations.
### Backport notes
Clean cherry-pick — no adaptation was required. The composite-filter
classes
are `Cell`-based on branch-2.5, so the diff is identical to master. Tests
are
unchanged from master (JUnit 5).
### Impact
No-op by default: the new hint methods default to `null`, so existing
filters
and scans are unaffected. The optimization only engages for filters that
implement the hints.
### Testing
- `TestFilterHintForRejectedRow` and `TestFilterListHintDelegation` (new)
cover forward/reversed scans, AND/OR merge semantics, edge cases, and
data-correctness invariants.
- Compiles against branch-2.5 (`mvn -pl hbase-client,hbase-server -am
-DskipTests package`).
cc @virajjasani
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]