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

Enis Soztutar commented on HBASE-5583:
--------------------------------------

Sorry for coming in this late to this jira. Ram, have you looked at the generic 
master coordinated actions jira, HBASE-5487? What you are doing here, and what 
we need in general for operations(create table, disable table, etc) running in 
master is: 
 - Client initiates the Master operation, gets a trackId in an async response. 
 - Operations are written in a sequence of adempotent steps, where each step 
can be undone. Each step can work on top of partial results from a previous 
execution. 
 - Master executes the steps of operation in sequence. Master either keeps the 
state of the whole execution stack, or uses a WAL for keeping the execution 
state. 
 - Client query back the execution state by asking the master with the obtained 
trackId. 

This patch only solves the create table problem, for some cases, but cannot be 
generalized to other operations. Instead of doing it case-by-case, we should 
really solve this in HBASE-5487 I think. As I outlined there, there are 3 ways, 
that we can approach this: 
 - Keeping the master state in zookeeper. Your patch does this for create 
table. However, we should go with the FATE approach if we decide on this. 
 - Keeping the state in an WAL from master. This log will use hlog, but will be 
owned by the active master. recovery is done using this. 
 - Keeping the state in a system table. Since HBase tables in turn use WAL's, 
this is just indirectly using a WAL. 
                
> Master restart on create table with splitkeys does not recreate table with 
> all the splitkey regions
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-5583
>                 URL: https://issues.apache.org/jira/browse/HBASE-5583
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.95.0
>
>         Attachments: HBASE-5583_new_1.patch, HBASE-5583_new_1_review.patch, 
> HBASE-5583_new_2.patch, HBASE-5583_new_4_WIP.patch, 
> HBASE-5583_new_5_WIP_using_tableznode.patch
>
>
> -> Create table using splitkeys
> -> MAster goes down before all regions are added to meta
> -> On master restart the table is again enabled but with less number of 
> regions than specified in splitkeys
> Anyway client will get an exception if i had called sync create table.  But 
> table exists or not check will say table exists. 
> Is this scenario to be handled by client only or can we have some mechanism 
> on the master side for this? Pls suggest.

--
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