[ https://issues.apache.org/jira/browse/HBASE-19826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16344790#comment-16344790 ]
Ankit Singhal commented on HBASE-19826: --------------------------------------- {quote}In 2.0, there is a new behavior which also considers mvcc when deciding whether a put can be hide by a deleting marker. A put happens after a delete, even if timestamp of the delete is newer, the delete marker can not hide the put. Is this what you want? {quote} Actually, we want to see the put( at t1) arrived before the delete marker( at t2, where t2>t1) in a time range query(t1-1 to t2-1) with non-raw scan on a table, having keep deleted cells set to false in family descriptor > Provide a option to see rows behind a delete in a time range queries > -------------------------------------------------------------------- > > Key: HBASE-19826 > URL: https://issues.apache.org/jira/browse/HBASE-19826 > Project: HBase > Issue Type: Improvement > Reporter: Ankit Singhal > Assignee: Ankit Singhal > Priority: Major > Fix For: 2.0.0 > > > We can provide an option (something like seePastDeleteMarkers) in a scan to > let the user see the versions behind the delete marker even if > keepDeletedCells is set to false in the descriptor. > With the previous version, we workaround the same in preStoreScannerOpen > hook. For reference PHOENIX-4277 > {code} > @Override > public KeyValueScanner preStoreScannerOpen(final > ObserverContext<RegionCoprocessorEnvironment> c, > final Store store, final Scan scan, final NavigableSet<byte[]> > targetCols, > final KeyValueScanner s) throws IOException { > > if (scan.isRaw() || > ScanInfoUtil.isKeepDeletedCells(store.getScanInfo()) || > scan.getTimeRange().getMax() == HConstants.LATEST_TIMESTAMP || > TransactionUtil.isTransactionalTimestamp(scan.getTimeRange().getMax())) { > return s; > } > > ScanInfo scanInfo = > ScanInfoUtil.cloneScanInfoWithKeepDeletedCells(store.getScanInfo()); > return new StoreScanner(store, scanInfo, scan, targetCols, > > c.getEnvironment().getRegion().getReadpoint(scan.getIsolationLevel())); > } > {code} > Another way is to provide a way to set KEEP_DELETED_CELLS to true in > ScanOptions of preStoreScannerOpen. -- This message was sent by Atlassian JIRA (v7.6.3#76005)