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

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

bq.Here some more changes are needed for secondary index Anoop. presently not 
using the SplitInfo.
Going through the changes what is done in HIndex.  

1. Doing some ops in the before PONR hook and if that is not success don't want 
o continue with the split but to rollback. This can be done using bypass() on 
the CP?  In case of bypass the core code cab throw an IOE so as to allow upper 
layer to do the rollback.
2. Both actual and index region got split. We would like to write to Meta both 
the data (daughter region entries) as one Put. For that there should be some 
provision provided in this  beforePONR or after PONR CP hook so that that can 
change what is getting written to META tabl?. Do how we handle in case of batch 
put.  We pass the WALEdit also to the hook. Hook can change it and finally core 
writes the resultant edit..  Same way can follow here also?
                
> Add cp hook before setting PONR in split
> ----------------------------------------
>
>                 Key: HBASE-9249
>                 URL: https://issues.apache.org/jira/browse/HBASE-9249
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>         Attachments: HBASE-9249.patch, HBASE-9249_v2.patch, 
> HBASE-9249_v3.patch, HBASE-9249_v4.patch
>
>
> This hook helps to perform split on user region and corresponding index 
> region such that both will be split or none.
> With this hook split for user and index region as follows
> user region
> ===========
> 1) Create splitting znode for user region split
> 2) Close parent user region
> 3) split user region storefiles
> 4) instantiate child regions of user region
> Through the new hook we can call index region transitions as below
> index region
> ===========
> 5) Create splitting znode for index region split
> 6) Close parent index region
> 7) Split storefiles of index region
> 8) instantiate child regions of the index region
> If any failures in 5,6,7,8 rollback the steps and return null, on null return 
> throw exception to rollback for 1,2,3,4
> 9) set PONR
> 10) do batch put of offline and split entries for user and index regions
> index region
> ============
> 11) open daughers of index regions and transition znode to split. This step 
> we will do through preSplitAfterPONR hook. Opening index regions before 
> opening user regions helps to avoid put failures if there is colocation 
> mismatch(this can happen if user regions opening completed but index regions 
> opening in progress)
> user region
> ===========
> 12) open daughers of user regions and transition znode to split.
> Even if region server crashes also at the end both user and index regions 
> will be split or none

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to