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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HBASE-28622 FilterListWithAND can swallow SEEK_NEXT_USING_HINT #5955
HBASE-28622 FilterListWithAND can swallow SEEK_NEXT_USING_HINT #5955
Changes from 4 commits
4511dea
05e5cb9
3a69103
0606e3a
9b6a99b
af118ff
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto.
I think the intention here is that, usually SEEK_NEXT_USING_HINT can skip more rows, so even if we decide to skip the current cell, we'd better still looking to remaining filters to see if we can get a SEEK_NEXT_USING_HINT.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, exactly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will add more comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's speak more here? It is not easy for a developer without the context of this issue here to understand, and please also mention the issue number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think hintingFilters being true only means it is a HintingFilter, does not mean it has returned false?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's right, hintingFilters is just caching if a filter is a HintingFilter, it's just a performance aid to reduce instanceof calls.
We know that filterRowKey() has returned false, becasue we are in the else clause of the if clause which checks the return value.
We do want the case where filterRowKey() has returned false.
if filterRowKey() returns true, then we skip the whole rowkey.
If it returns false, then the we call filterCell() on the individual cells (which is what we want in this case)
However, I realize that the patch regresses the filterAllRemaining() case performance.
If any of the filters returns true for filterAllRemaining, then we can just skip the row. I will update the patch.