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


   After rethinking, I think there are several ways to simplify the 
implementation.
   
   1. Instead of adding a new isQueueStored flag, we could just implement a 
ReplicationQueueStorage which stores nothing? Then we do not need to add checks 
everywhere.
   2. Since the ReplicationSource for meta is a special one, we do not need to 
add it to the replication source map in ReplicationSourceManager, just give it 
a special field.
   3. Passing the WALProvider for meta when calling the addHBaseMetaSource 
method, instead of changing lots of constructors and initialization methods in 
the replication related code base to pass WALFactory. Or maybe we just need to 
add a special WALActionListener to WALProvider for meta, if meta replication is 
enabled, we call some special method in ReplicationSourceManager(maybe 
introduce preMetaLogRoll and postMetaLogRoll methods to 
ReplicationSourceManager?), then we even do not need to add the 
addHBaseMetaSource method? In ReplicationSourceManager, if preMetaLogRoll is 
called and we find out that there is still no replication source for it, we 
just create one. Of course we still need to the removeHBaseMetaSource method, 
as we will not close WALProvider for meta even if meta region has already been 
moved out so we can not implement the logic through WALActionListener(maybe it 
will be good if we implement this logic? Not sure).
   
   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