You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by sy...@apache.org on 2016/08/17 18:34:38 UTC

[32/50] [abbrv] hbase git commit: HBASE-16310 Revisit the logic of filterRowKey for Filters (Ram)

HBASE-16310 Revisit the logic of filterRowKey for Filters (Ram)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2d203e60
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2d203e60
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2d203e60

Branch: refs/heads/hbase-12439
Commit: 2d203e6053defb52cd3629d49ae6d54460c658dd
Parents: 46defe8
Author: Ramkrishna <ra...@intel.com>
Authored: Wed Aug 10 13:54:25 2016 +0530
Committer: Ramkrishna <ra...@intel.com>
Committed: Wed Aug 10 13:54:25 2016 +0530

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java  | 1 +
 .../src/main/java/org/apache/hadoop/hbase/filter/Filter.java       | 2 ++
 .../src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java   | 2 ++
 .../main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java    | 2 ++
 .../java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java   | 1 +
 .../java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java   | 1 +
 .../src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java   | 1 +
 .../src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java | 1 +
 .../main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java | 1 +
 9 files changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
index fd65130..c747b00 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java
@@ -55,6 +55,7 @@ public class ColumnCountGetFilter extends FilterBase {
   @Override
   public boolean filterRowKey(Cell cell) throws IOException {
     // Impl in FilterBase might do unnecessary copy for Off heap backed Cells.
+    if (filterAllRemaining()) return true;
     return false;
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
index 22ca8ac..59aa855 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
@@ -87,6 +87,8 @@ public abstract class Filter {
   /**
    * Filters a row based on the row key. If this returns true, the entire row will be excluded. If
    * false, each KeyValue in the row will be passed to {@link #filterKeyValue(Cell)} below.
+   * If {@link #filterAllRemaining()} returns true, then {@link #filterRowKey(Cell)} should
+   * also return true.
    *
    * Concrete implementers can signal a failure condition in their code by throwing an
    * {@link IOException}.

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
index fc00d02..e59f324 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
@@ -58,11 +58,13 @@ public abstract class FilterBase extends Filter {
   @Override
   @Deprecated
   public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
+    if (filterAllRemaining()) return true;
     return false;
   }
 
   @Override
   public boolean filterRowKey(Cell cell) throws IOException {
+    if (filterAllRemaining()) return true;
     return filterRowKey(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
index 4d7a18a..617cd7a 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
@@ -103,11 +103,13 @@ final public class FilterWrapper extends Filter {
   @Override
   public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
     // No call to this.
+    if (filterAllRemaining()) return true;
     return this.filter.filterRowKey(buffer, offset, length);
   }
 
   @Override
   public boolean filterRowKey(Cell cell) throws IOException {
+    if (filterAllRemaining()) return true;
     return this.filter.filterRowKey(cell);
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
index 1096f5e..5dcb50d 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/InclusiveStopFilter.java
@@ -61,6 +61,7 @@ public class InclusiveStopFilter extends FilterBase {
 
   public boolean filterRowKey(Cell firstRowCell) {
     // if stopRowKey is <= buffer, then true, filter row.
+    if (filterAllRemaining()) return true;
     int cmp = CellComparator.COMPARATOR.compareRows(firstRowCell, stopRowKey, 0, stopRowKey.length);
     done = reversed ? cmp < 0 : cmp > 0;
     return done;

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
index 5f9c833..3f26586 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java
@@ -85,6 +85,7 @@ public class MultiRowRangeFilter extends FilterBase {
 
   @Override
   public boolean filterRowKey(Cell firstRowCell) {
+    if (filterAllRemaining()) return true;
     // If it is the first time of running, calculate the current range index for
     // the row key. If index is out of bound which happens when the start row
     // user sets is after the largest stop row of the ranges, stop the scan.

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
index adc9c54..f12fac8 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PageFilter.java
@@ -63,6 +63,7 @@ public class PageFilter extends FilterBase {
   @Override
   public boolean filterRowKey(Cell cell) throws IOException {
     // Impl in FilterBase might do unnecessary copy for Off heap backed Cells.
+    if (filterAllRemaining()) return true;
     return false;
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
index d09ea2c..e7b91e1 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/PrefixFilter.java
@@ -55,6 +55,7 @@ public class PrefixFilter extends FilterBase {
   public boolean filterRowKey(Cell firstRowCell) {
     if (firstRowCell == null || this.prefix == null)
       return true;
+    if (filterAllRemaining()) return true;
     int length = firstRowCell.getRowLength();
     if (length < prefix.length) return true;
     // if they are equal, return false => pass row

http://git-wip-us.apache.org/repos/asf/hbase/blob/2d203e60/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
index e75ca49..93b4a00 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/WhileMatchFilter.java
@@ -74,6 +74,7 @@ public class WhileMatchFilter extends FilterBase {
 
   @Override
   public boolean filterRowKey(Cell cell) throws IOException {
+    if (filterAllRemaining()) return true;
     boolean value = filter.filterRowKey(cell);
     changeFAR(value);
     return value;