You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2018/01/09 05:48:06 UTC

[jira] [Commented] (HBASE-19543) Abstract a replication storage interface to extract the zk specific code

    [ https://issues.apache.org/jira/browse/HBASE-19543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16317764#comment-16317764 ] 

Hudson commented on HBASE-19543:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #4367 (See [https://builds.apache.org/job/HBase-Trunk_matrix/4367/])
HBASE-19543 Abstract a replication storage interface to extract the zk (zhangduo: rev 5e6c3035281896404132ed524eab3984cb24b4cd)
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerStorage.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockNoopMasterServices.java
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ZKReplicationQueueStorage.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
* (add) hbase-replication/src/test/java/org/apache/hadoop/hbase/replication/TestZKReplicationQueueStorage.java
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ZKReplicationStorageBase.java
* (edit) hbase-common/src/main/java/org/apache/hadoop/hbase/util/CollectionUtils.java
* (edit) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
* (add) hbase-replication/src/test/java/org/apache/hadoop/hbase/replication/TestZKReplicationPeerStorage.java
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationStorageFactory.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueueStorage.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.java
* (edit) hbase-replication/pom.xml
* (add) hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ZKReplicationPeerStorage.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
* (delete) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationManager.java
* (add) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.java


> 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
>             Fix For: 3.0.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
(v6.4.14#64029)