[
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