Skip to content

Commit 01f93db

Browse files
authored
HBASE-29907 ROWCOL bloom filter + StoreScanner.trySkipToNextColumn can surface out-of-order cells, causing read failure “isDelete failed” (#7764)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
1 parent e2cfd2c commit 01f93db

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -964,10 +964,8 @@ protected boolean trySkipToNextColumn(ExtendedCell cell) throws IOException {
964964
} while ((nextCell = this.heap.peek()) != null && CellUtil.matchingRowColumn(cell, nextCell));
965965
// We need this check because it may happen that the new scanner that we get
966966
// during heap.next() is requiring reseek due of fake KV previously generated for
967-
// ROWCOL bloom filter optimization. See HBASE-19863 for more details
968-
if (
969-
useRowColBloom && nextCell != null && cell.getTimestamp() == PrivateConstants.OLDEST_TIMESTAMP
970-
) {
967+
// ROWCOL bloom filter optimization. See HBASE-19863 and HBASE-29907 for more details
968+
if (useRowColBloom && nextCell != null && matcher.compareKeyForNextColumn(nextCell, cell) < 0) {
971969
return false;
972970
}
973971
return true;

0 commit comments

Comments
 (0)