[
https://issues.apache.org/jira/browse/HBASE-1730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069395#comment-13069395
]
stack commented on HBASE-1730:
------------------------------
Dhruba:
You can ignore the attached patches. They and the design rotted. A few things
I learned back then were that "complex" objects to json is not so easy; if
class is made of anything more complicated than a base types and primitives
then you need to write helper code for ser/deser. Because of this, I tried to
dumb-down the schema classes making new versions of HTD and HCD. I didn't
finish it.
Regards the proposal, it will no longer work; i.e the bit about "updates
.META.' because recently HTD was moved out of HRI (so .META. no longer holds
table meta in each row). It is now to be found in a file named .tableinfo in
the filesystem under each table directory.
So, how this is implemented is pretty wide open. I like Ryans' dictum that we
store transitory info in zk only, not permanent info like table schemas. I'd
imagine then that a schema edit would change the .tableinfo content and then
we'd signal regionservers to reread the .tableinfo (via zk?). What a RS did
thereafter could be as dumb as close and reopen of all regions of the modified
table or it could try and be smart about it and only do this if it really has
to (otherwise, just update its inmemory copy of the .tableinfo with new
settings).
> Near-instantaneous online schema and table state updates
> --------------------------------------------------------
>
> Key: HBASE-1730
> URL: https://issues.apache.org/jira/browse/HBASE-1730
> Project: HBase
> Issue Type: Improvement
> Reporter: Andrew Purtell
> Assignee: stack
> Priority: Critical
> Fix For: 0.92.0
>
> Attachments: 1730-v2.patch, 1730-v3.patch, 1730.patch
>
>
> We should not need to take a table offline to update HCD or HTD.
> One option for that is putting HTDs and HCDs up into ZK, with mirror on disk
> catalog tables to be used only for cold init scenarios, as discussed on IRC.
> In this scheme, regionservers hosting regions of a table would watch
> permanent nodes in ZK associated with that table for schema updates and take
> appropriate actions out of the watcher. In effect, schema updates become
> another item in the ToDo list.
> {{/hbase/tables/<table-name>/schema}}
> Must be associated with a write locking scheme also handled with ZK
> primitives to avoid situations where one concurrent update clobbers another.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira