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

stack commented on HBASE-1886:
------------------------------

I took a quick look at the patch.  I've been trying to do a bit of thinking on 
this topic myself as part of master rewrite design writeup: 
http://wiki.apache.org/hadoop/Hbase/MasterRewrite (as part of the rewrite 
master issue).  I'd like to be a little more radical and move schema to zk too. 

After chatting w/ J-D, I'm thinking we'd have a single tables znode up in zk.  
Its content is a JSON object that is a list of tables in the cluster.  This 
JSON object would have two attributes: status and schema.  The status would 
have attributes read-only, disabled, no-flush (these states seem to be mutually 
exclusive but I don't want to disallow setting more than attribute on a table). 
 The schema would have the table's schema in JSON.

Every RS would have a watcher on this znode -- just one watcher rather than 
one-per-attribute as you'd need using your scheme?  If tables changed, 
regionservers would react by checking every region against the content of the 
tables file.  Could get a little involved if its carrying 1k regions, there are 
1k tables, and one little attribute changed... but won't be bad either since 
just a spin through in-memory content.



> move table and column family attributes to ZK to make them live
> ---------------------------------------------------------------
>
>                 Key: HBASE-1886
>                 URL: https://issues.apache.org/jira/browse/HBASE-1886
>             Project: Hadoop HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.21.0
>
>         Attachments: live_attributes.patch
>
>
> This is a first cut at moving table and column family attributes up to ZK 
> where they can be modified any time without requiring a disable/enable table 
> cycle. Adds methods to ZooKeeperWrapper for support server side. Adds methods 
> to HTableInterface for client side access. Client side talks directly to ZK. 
> The new hierarchy for attributes in ZK is like:
> {noformat}
> /hbase
>   /table
>     /<table-name>
>       /attr
>         /<table-attr-name>
>         /<family-name>
>           /<family-attr-name>
> {noformat}
> As before attribute names and values are byte[], but now that they are hosted 
> in ZK, the path delimiter ('/') cannot be used.
> Attached patch compiles but has not been tested. I put it up for a concept 
> review. Next step before this is functional is to deprecate the attribute 
> related methods on HTD and HCD and chase through the warnings to find all 
> users who should be updated to use the ZK wrapper or new HTable methods 
> instead. And, of course, then add test cases that successfully complete.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to