On Wed, Mar 14, 2018 at 11:55 PM, OpenInx <open...@gmail.com> wrote: > Hi : > > (Paste from https://issues.apache.org/jira/browse/HBASE-20166? > focusedCommentId=16399886&page=com.atlassian.jira. > plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16399886) > > There's a really big problem here if we use table based replication to > start a hbase cluster: > > For HMaster process, it works as following: > 1. Start active master initialization . > 2. Master wait rs report in . > 3. Master assign meta region to one of the region servers . > 4. Master create hbase:replication table if not exist. > > We have to have a new system table? Can't we add a column family on hbase:meta that keeps offsets? We've done the work to make sure hbase:meta is up before everything else. It has its own WALs so we can split these ahead of user-space WALs, and so on. We've not done the work to for hbase:replication or hbase:namespace, hbase:acl... etc.
Means more loading on hbase:meta and it is going to get bigger but I'd rather work on splitting meta than on figuring how to preassign miscellaneous system tables; one-per-feature. > But the RS need to finish initialize the replication source & sink before > finish startup( and the initialization of replication source & sink must > finish before opening region, because we need to listen the wal event, > otherwise our replication may lost data), and when initialize the source & > sink , we need to read hbase:replication table which hasn't been avaiable > because our master is waiting rs to be OK, and the rs is waiting > hbase:replication to be OK ... a dead loop happen again ... > > After discussed with Guanghao Zhang offline, I'm considering that try to > assign all system table to a rs which only accept regions of system table > assignment (The rs will skip to initialize the replication source or sink > )... > > Can we avoid this sort of special-casing? St.Ack > I've tried to start a mini cluster by setting > hbase.balancer.tablesOnMaster.systemTablesOnly=true > & hbase.balancer.tablesOnMaster=true , it seems not work. because > currently > we initialize the master logic firstly, then region logic for the HMaster > process, and it should be ... > > > Any suggestion ? >