Revert "HBASE-17678 FilterList with MUST_PASS_ONE lead to redundancy cells returned - addendum"

This reverts commit 347bef8d33.

Backing out filterlist regression, see HBASE-18957. Work continuing branch for HBASE-18410.

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
Sean Busbey 2017-10-06 13:20:03 -05:00
parent 1d07c8eec4
commit 852b578384
1 changed files with 2 additions and 10 deletions

View File

@ -27,7 +27,6 @@ import java.util.List;
import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellComparator; import org.apache.hadoop.hbase.CellComparator;
import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.KeyValueUtil;
import org.apache.yetus.audience.InterfaceAudience; import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
@ -145,7 +144,7 @@ final public class FilterList extends FilterBase {
public void initPrevListForMustPassOne(int size) { public void initPrevListForMustPassOne(int size) {
if (operator == Operator.MUST_PASS_ONE) { if (operator == Operator.MUST_PASS_ONE) {
if (this.prevFilterRCList == null) { if (this.prevCellList == null) {
prevFilterRCList = new ArrayList<>(Collections.nCopies(size, null)); prevFilterRCList = new ArrayList<>(Collections.nCopies(size, null));
} }
if (this.prevCellList == null) { if (this.prevCellList == null) {
@ -404,14 +403,7 @@ final public class FilterList extends FilterBase {
ReturnCode localRC = filter.filterKeyValue(c); ReturnCode localRC = filter.filterKeyValue(c);
// Update previous cell and return code we encountered. // Update previous cell and return code we encountered.
prevFilterRCList.set(i, localRC); prevFilterRCList.set(i, localRC);
if (c == null || localRC == ReturnCode.INCLUDE || localRC == ReturnCode.SKIP) { prevCellList.set(i, c);
// If previous return code is INCLUDE or SKIP, we should always pass the next cell to the
// corresponding sub-filter(need not test shouldPassCurrentCellToFilter() method), So we
// need not save current cell to prevCellList for saving heap memory.
prevCellList.set(i, null);
} else {
prevCellList.set(i, KeyValueUtil.toNewKeyCell(c));
}
if (localRC != ReturnCode.SEEK_NEXT_USING_HINT) { if (localRC != ReturnCode.SEEK_NEXT_USING_HINT) {
seenNonHintReturnCode = true; seenNonHintReturnCode = true;