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

Andrey Stepachev commented on HBASE-7767:
-----------------------------------------

Have done more research.
Seems that an idea with tableinfo looks better. TableStateManager 
implementation can hold information in memory and on failover to new master it 
simply reread from hdfs. Every state change will goes through TSM too. 
Transient states stored in memory too.
Why it is better then using table:
 - table is much more heavyweight structure than needed (why we need support 
for wal and split log for such small structure)
 - TableStateManager used even before meta table is up, so it is not obvious, 
where to store state of meta table and states table itself.
Currently client uses zk. With table implementation it will use regular scan 
requests, but it will be cumbersome to implement modification semantics (we 
need coprocessor to intercept updates to this table). 

Much better solution is to add status (enabled/disabled) to HTableDescriptor. 
Thats gives consistent way to create disabled tables. Or to disable enabled via 
alter table calls. Transient states (ENABLING/DISABLING) should be stored in 
memory and on reactivating new master it should figure out that table is not 
enabled/disabled completely (state of the table will be disabled, but not all 
regions unassigned).

Is it make sense?

> Get rid of ZKTable, and table enable/disable state in ZK 
> ---------------------------------------------------------
>
>                 Key: HBASE-7767
>                 URL: https://issues.apache.org/jira/browse/HBASE-7767
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Zookeeper
>    Affects Versions: 0.95.2
>            Reporter: Enis Soztutar
>            Assignee: Andrey Stepachev
>
> As discussed table state in zookeeper for enable/disable state breaks our 
> zookeeper contract. It is also very intrusive, used from the client side, 
> master and region servers. We should get rid of it. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to