[ https://issues.apache.org/jira/browse/HBASE-451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Subbu M Iyer updated HBASE-451: ------------------------------- Assignee: Subbu M Iyer Status: Patch Available (was: Open) Here is a brief summary of changes for this JIRA: 1. HTD will be stored in HDFS in .tableinfo file under the table folder. 2. HTD removed from HRI 3. Bootstrap creates ROOT and META with out HTD in HRI. (for all fresh setup/startup. This process will also set a flag in -ROOT- called metamigrated and set it to true to indicate that the system supports new HRI's with out HTD.) 4. HRegion.createHRegion stores HTD in HDFS. (Master also stores HTD in HDFS during table creation, but it seems redundant and will be removed). 5. New HRegion instances will load the HTD of the table from HDFS. 6. AssignmentManager maintains an in-memory map of <tableName, HTD> that gets modified during table manipulations (such as modifyTable, AddFamily, DeleteFamily etc) as well as during user region assignments. 7. All schema operations such as modifyTable, AddFamily, DeleteFamily et al will result in appropriate changes to HTD on HDFS (.tableinfo changes). 8. For existing installations: If the system is not updated (metamigrated is False or NULL in -ROOT-) to support HRI with out HTD, then HMaster at startup (before assigning ROOT and META) does 1-3 else jumps to 4. 1. Creates new .tableInfo files for all tables in the system (based on -ROOT- and .META. scan) 2. Updates existing META.HRI (with HTD) with the new version of HRI (with out HTD). 3. Sets a flag in -ROOT- (metamigrated) to record this process and to avoid duplicate processing. 4. Continue with regular startup. 9. Appropriate changes to source and test files to work with new HRI structure with out HTD. > Remove HTableDescriptor from HRegionInfo > ---------------------------------------- > > Key: HBASE-451 > URL: https://issues.apache.org/jira/browse/HBASE-451 > Project: HBase > Issue Type: Improvement > Components: master, regionserver > Affects Versions: 0.2.0 > Reporter: Jim Kellerman > Assignee: Subbu M Iyer > Priority: Critical > Fix For: 0.92.0 > > Attachments: > HBASE-451_-_First_draft_support_for_removing_HTD_from_HRI1.patch > > > There is an HRegionInfo for every region in HBase. Currently HRegionInfo also > contains the HTableDescriptor (the schema). That means we store the schema n > times where n is the number of regions in the table. > Additionally, for every region of the same table that the region server has > open, there is a copy of the schema. Thus it is stored in memory once for > each open region. > If HRegionInfo merely contained the table name the HTableDescriptor could be > stored in a separate file and easily found. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira