You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Doğacan Güney (JIRA)" <ji...@apache.org> on 2009/07/11 14:09:14 UTC
[jira] Updated: (HBASE-1647) Filter#filterRow is called too often,
filters rows it shouldn't have
[ https://issues.apache.org/jira/browse/HBASE-1647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Doğacan Güney updated HBASE-1647:
---------------------------------
Attachment: scanfilter.patch
ScanBug.java
1) A simple class to demonstrate the problem. Not that col2:-s are all filtered even though the ValueFilter instance should only work on col1:-s. When running give -create as an argument to create the table.
2) Patch for the issue. Patch delete the ScanQueryMatcher#filterEntireRow method and instead calls Filter#filterRow in HRegion.RegionScanner#next. I am not sure if this patch is complete/correct but it fixes the problem for me. Not that you also need HBASE-1646 to test this patch (or the class above).
> Filter#filterRow is called too often, filters rows it shouldn't have
> --------------------------------------------------------------------
>
> Key: HBASE-1647
> URL: https://issues.apache.org/jira/browse/HBASE-1647
> Project: Hadoop HBase
> Issue Type: Bug
> Affects Versions: 0.20.0
> Reporter: Doğacan Güney
> Attachments: ScanBug.java, scanfilter.patch
>
>
> Filter#filterRow is called from ScanQueryMatcher#filterEntireRow which is called from StoreScanner.next. However, if I understood the code correctly, StoreScanner processes KeyValue-s in a column-oriented order (i.e. after row1-col1 comes row2-col1, not row1-col2). Thus, when filterEntireRow is called, in reality, the filter only processed (via filterKeyValue) only one column of a row.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.