[
https://issues.apache.org/jira/browse/HBASE-24471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang updated HBASE-24471:
------------------------------
Component/s: proc-v2
meta
master
Fix Version/s: 2.3.0
3.0.0-alpha-1
Hadoop Flags: Incompatible change
> The way we bootstrap meta table is confusing
> --------------------------------------------
>
> Key: HBASE-24471
> URL: https://issues.apache.org/jira/browse/HBASE-24471
> Project: HBase
> Issue Type: Improvement
> Components: master, meta, proc-v2
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.0
>
>
> I used to thought the work is only done in the InitMetaProcedure but in fact
> we have several pieces of code related to this which are placed in different
> classes.
> In HRegionServer.initializeFileSystem, we will test whether we are HMaster.
> If so, we will call FSTableDescriptors.tryUpdateMetaTableDescriptor. And in
> MasterFileSystem.checkRootDir, we will check if meta region is available. If
> not, we will bootstrap it, and it will also call
> FSTableDescriptors.tryUpdateMetaTableDescriptor.
> The problem here is that, HRegionServer.initializeFileSystem is called in the
> constructor of HRegionServer, which means it will be executed before
> MasterFileSystem.checkRootDir, as we will only create the MasterFileSystem
> for active master...
> Ideally I prefer we move all the bootstrap code into InitMetaProcedure, which
> will be much cleaner. If this can not be done, at least we could move the
> code into MasterFileSystem.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)