[
https://issues.apache.org/jira/browse/HBASE-11745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14097233#comment-14097233
]
Andrew Purtell commented on HBASE-11745:
----------------------------------------
bq. Does it require hasFilterRow() to return true?
Doesn't seem to because this still managed to filter out cells. But do we even
need filterRow at all? Let's just remove it.
> FilterAllFilter should return ReturnCode.SKIP
> ---------------------------------------------
>
> Key: HBASE-11745
> URL: https://issues.apache.org/jira/browse/HBASE-11745
> Project: HBase
> Issue Type: Bug
> Reporter: Andrew Purtell
> Assignee: Andrew Purtell
> Fix For: 0.99.0, 2.0.0, 0.98.6
>
> Attachments: HBASE-11745.patch
>
>
> FilterAllFilter is a filter in hbase-server's test packages used by
> PerformanceEvaluation to filter all results at the server when given the
> --filterAll command line argument. There is an unfortunate bug in versions
> greater than 0.94 (where I rewrote this filter and didn't notice the issue in
> later versions at the time):
> {code}
> @Override
> public ReturnCode filterKeyValue(Cell v) throws IOException {
> return ReturnCode.INCLUDE;
> }
> {code}
> This is obviously wrong, and results in the creation of KeyValue objects that
> we will almost immediately throw away when processing filterRow for backwards
> compatibility, which FilterAllFilter implements as:
> {code}
> @Override
> public boolean filterRow() throws IOException {
> return true;
> }
> {code}
> We noticed this problem when comparing object allocations during RPC
> processing between 0.94 and 0.98.
--
This message was sent by Atlassian JIRA
(v6.2#6252)