[ https://issues.apache.org/jira/browse/HBASE-19543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16442879#comment-16442879 ]
Mike Drob commented on HBASE-19543: ----------------------------------- [~Apache9] - noticed a small behaviour change related to this patch. In 2.0 the {{ReplicationManager}} constructor calls {{replicationQueuesClient.init}} which will create the queues znode if it doesn't exist ({{/hbase/replication/rs}}). The new implementation skips this, it has a ReplicationPeerManager that has ReplicationQueueStorage but only creates the queues znode when a process attempts to claim a queue. Was this change intentional or an oversight? > Abstract a replication storage interface to extract the zk specific code > ------------------------------------------------------------------------ > > Key: HBASE-19543 > URL: https://issues.apache.org/jira/browse/HBASE-19543 > Project: HBase > Issue Type: Sub-task > Components: proc-v2, Replication > Reporter: Duo Zhang > Assignee: Duo Zhang > Priority: Major > Fix For: 3.0.0, 2.1.0 > > Attachments: HBASE-19543-HBASE-19397-v1.patch, > HBASE-19543-HBASE-19397-v2.patch, HBASE-19543-HBASE-19397-v3.patch, > HBASE-19543-HBASE-19397.patch, HBASE-19543-HBASE-19397.patch > > > For now, we will do sanity checks at the same time when updating replication > peer. But this is not a safe way for procedure based replication peer > modification. > For the old zk watcher way, the only thing is updating the data on zk, so if > the data is updated and then we crashes, there is no problem. > For the new procedure way, we need to trigger refresh by ourselves after > updating zk. If we crashes after the updating and before we record the state > change of the procedure, we may fail with IllegalArgumentException when we > execute the procedure next time since the data on zk has already been updated. > So the current way is to do sanity checks in PRE_PEER_MODIFICATION state, and > in UPDATE_STORAGE state we will not do sanity checks any more, just > update(overwrite) the peer storage. -- This message was sent by Atlassian JIRA (v7.6.3#76005)