Ankit Singhal commented on HBASE-19826:

sure, (Second use-case mentioned in my earlier 

"While doing Index scrutiny on a live table, time range scan wants to see PUTs 
not eclipsed by newer DELETE markers.(raw scan cannot be utilized here as it 
will give all cells even if we have delete markers within the time range)"

To achieve this, we were earlier updating the store scanner by setting 
KeepDeletedCells to true in preStoreScannerOpen hook so that our time range 
queries will see puts which are deleted at the newer timestamp.

Let me know if you need more details. Thanks. 

> 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

Reply via email to