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]
