Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-565

Move Table Schema out of HRegionInfo



    • Improvement
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • None
    • 0.2.0
    • None
    • None


      Every HRI carries a HTableDescriptor instance. When a Region context needs a table descriptor, doesn't have far to go. Move the HTD out of HRI and when wanted, go elsewhere to go get it.

      In Bigtable paper, Schema is stored over in Chubby. Could run a Zookeeper instance easy-enough and store it there. Would run on master. ZooKeeper snapshots its in-memory database to local director on disk – not DFS. If a ZooKeeper cluster, then that should protect against loss. Master could tell regionservers the address of the zookeeper instance to use (as it does other vitals currently). Later we could add the indirection so zookeeper is where regionservers register themselves on startup and master could watch here for the coming and going of servers.

      Or, we could store the schema in DFS. Good thing would be replication of critical data and an hbasck tool could read the file to learn table schema (Would be awkward having to read zookeeper format out on local filesystem). Downside would be that any change in schema would require offlining unless we develop a message that the master could send regionservers to notify them of of minor schema changes – e.g. flip to being memory-based or to being compressed or that two column families are now of a single locality group (Zookeeper has the watcher mechanism where regionservers could 'notice' schema changes).


        Issue Links



              stack Michael Stack
              stack Michael Stack
              0 Vote for this issue
              0 Start watching this issue