[ 
https://issues.apache.org/jira/browse/HBASE-15759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated HBASE-15759:
---------------------------
    Release Note: 
The following RegionObserver method is deprecated and would no longer be called 
in hbase 2.0:

  public KeyValueScanner preStoreScannerOpen(final 
ObserverContext<RegionCoprocessorEnvironment> c,
      final Store store, final Scan scan, final NavigableSet<byte[]> targetCols,
      final KeyValueScanner s) throws IOException {

Instead, override this method:

  public KeyValueScanner preStoreScannerOpen(final 
ObserverContext<RegionCoprocessorEnvironment> c,
      final Store store, final Scan scan, final NavigableSet<byte[]> targetCols,
      final KeyValueScanner s, final long readPt) throws IOException {


  was:
The following RegionObserver method would no longer be called:

  public KeyValueScanner preStoreScannerOpen(final 
ObserverContext<RegionCoprocessorEnvironment> c,
      final Store store, final Scan scan, final NavigableSet<byte[]> targetCols,
      final KeyValueScanner s) throws IOException {

Instead, override this method:

  public KeyValueScanner preStoreScannerOpen(final 
ObserverContext<RegionCoprocessorEnvironment> c,
      final Store store, final Scan scan, final NavigableSet<byte[]> targetCols,
      final KeyValueScanner s, final long readPt) throws IOException {



> RegionObserver.preStoreScannerOpen() doesn't have acces to current readpoint
> ----------------------------------------------------------------------------
>
>                 Key: HBASE-15759
>                 URL: https://issues.apache.org/jira/browse/HBASE-15759
>             Project: HBase
>          Issue Type: Improvement
>          Components: Coprocessors
>            Reporter: Marek Srank
>            Assignee: Ted Yu
>            Priority: Minor
>              Labels: coprocessors
>         Attachments: 15759.v1.patch, 15759.v2.patch
>
>
> RegionObserver.preStoreScannerOpen() doesn't have acces to current readpoint. 
> This is crucial e.g. when creating a new StoreScanner.
> Although it is possible to obtain the readpoint via following workaround:
> ((HStore)store).getHRegion().getReadpoint(IsolationLevel.READ_COMMITTED)
> ...it presumes some knowledge of HBase internals and is not a clear option 
> for user.
> The problem was introduced in HBASE-9754, where readpoint was introduced as 
> an argument to StoreScanner constructor, but wasn't passed to the 
> preStoreScannerOpen() hook in HStore.getScanner().
> In our case it led to bug, when we were incorrectly using smallestReadpoint() 
> instead, which made coprocessor missing data in some cases [1].
> __________
> [1] 
> http://mail-archives.apache.org/mod_mbox/hbase-dev/201604.mbox/%3CCAOUjMkwptCGacQ0d-4yOinDVBT%2Bbi2NOZee0fSbq%2Bk1R6V4-aw%40mail.gmail.com%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to