Apache9 commented on pull request #2413:
URL: https://github.com/apache/hbase/pull/2413#issuecomment-694689275


   And after rethinking, if we want to support splittable meta(no matter which 
way we choose), then add/remove meta source when assign/unassign meta region 
will be much complicated, as we need to do reference counting and there could 
be race as the design of assign/unassign is that different regions can run 
concurrently.
   
   So to simplify the implementation, I suggest that first we could just create 
hbase meta source everytime(only controlled by the meta read replicas enabled 
flag). And in Replication.init, agree that we could pass a WALFactory, and we 
could create a WALActionListener in the init method and register it to 
WALFactory, and when we actually create meta provider, we register the listener 
to the meta provider.
   
   And on the ReplicationSource implementation, after reviewing the replication 
related code, I think we still need to have ReplicationSourceManager for meta 
replication source, as lots of other classes such as ReplicationSourceWALReader 
need it. And the only thing effects us is the logPositionAndCleanOldLogs 
method, it is called in ReplicationSourceShipper. So in general, at least we 
need to hack this method to treat meta replication source specially. Anyway, I 
still prefer that we have a dummy ReplicationQueueStorage so the logic could be 
simpler.
   
   Thanks.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to