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

Duo Zhang commented on HBASE-24471:
-----------------------------------

The current patch will lead to an 'incompatible change', no doubt, but I think 
it is fine. The InitMetaProcedure is only used when bootstraping a cluster. 
Once it is done, we will never use it again. So it is not likely to introduce 
any problems when rolling upgrading an existing cluster in real world. And even 
if someone does upgrade the version during bootstraping, since there is no 
actual data in the cluster before we finish InitMetaProcedure, the user ccan 
just cleanup the cluster and re-deploy again, there will be no data loss.

> 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)

Reply via email to