[ 
https://issues.apache.org/jira/browse/HBASE-19047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16220292#comment-16220292
 ] 

Anoop Sam John commented on HBASE-19047:
----------------------------------------

Ya on the returned scanner if that is Shipper instance, will use that for the 
RegionScannerShippedCallBack. Make sense. After all that scanner is what is 
going to be used.

> CP exposed Scanner types should not extend Shipper
> --------------------------------------------------
>
>                 Key: HBASE-19047
>                 URL: https://issues.apache.org/jira/browse/HBASE-19047
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0-alpha-4
>
>         Attachments: HBASE-19047.patch, HBASE-19047_V2.patch, 
> HBASE-19047_V2.patch
>
>
> Shipper is a IA.Private interface and very much internal.. 
> Right now CP exposed RegionScanner is extending this and so exposing the 
> shipped() method. This by mistake is called, can harm the correctness of the 
> cells in the Results.
> preScannerOpen() allowing to return a new Scanner is also problematic now.  
> This can allow users to create a Region scanner from Region and then wrap it 
> and return back (Well same can be done by postScannerOpen also), it can so 
> happen that the wrapper is not implementing the shipped() properly.  In any 
> way exposing the shipped () is problematic.
> Solution Steps
> 1. Remove preScannerOpen() , the use case I can think of is wrapping the 
> original scanner. The original scanner can be created by Region.getScanner 
> way only..  May be no need to remove this hook.  Just remove the ability for 
> it to return a RegionScanner instance.  Call this with the Scan object and 
> the CP can change the Scan object if they want.
> 2. Let RegionScanner not extending Shipper but only RegionScannerImpl 
> implements this
> 3. We have ref to the RegionScanner created by core and let that be used by 
> RegionScannerShippedCallBack when the post hook doing a wrap.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to