diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java index fb154c0..601dbf2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java @@ -26,6 +26,8 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellComparator; @@ -44,6 +46,8 @@ import org.apache.hadoop.hbase.regionserver.StoreFile.Reader; */ @InterfaceAudience.LimitedPrivate("Coprocessor") public class StoreFileScanner implements KeyValueScanner { + private static final Log LOG = LogFactory.getLog(StoreFileScanner.class); + // the reader it comes from: private final StoreFile.Reader reader; private final HFileScanner hfs; @@ -429,8 +433,31 @@ public class StoreFileScanner implements KeyValueScanner { if (timeRange == null) { timeRange = scan.getTimeRange(); } - return reader.passesTimerangeFilter(timeRange, oldestUnexpiredTS) && reader - .passesKeyRangeFilter(scan) && reader.passesBloomFilter(scan, scan.getFamilyMap().get(cf)); + if (!reader.passesTimerangeFilter(timeRange, oldestUnexpiredTS)) { + if (LOG.isDebugEnabled()) { + if (reader.getHFileReader() != null) { + LOG.debug(reader.getHFileReader().getName() + " skipped because of Timerange Filter."); + } + } + return false; + } + if (!reader.passesKeyRangeFilter(scan)) { + if (LOG.isDebugEnabled()) { + if (reader.getHFileReader() != null) { + LOG.debug(reader.getHFileReader().getName() + " skipped because of KeyRange Filter."); + } + } + return false; + } + if (!reader.passesBloomFilter(scan, scan.getFamilyMap().get(cf))) { + if (LOG.isDebugEnabled()) { + if (reader.getHFileReader() != null) { + LOG.debug(reader.getHFileReader().getName() + " skipped because of Bloom Filter."); + } + } + return false; + } + return true; } @Override