[02/36] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/45794d41 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/45794d41 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/45794d41 Branch: refs/heads/master Commit: 45794d41562495bfeb64841c9dfd7df03d9d01e7 Parents: 0c97cda Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu Jun 28 18:07:44 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/45794d41/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/45794d41/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/45794d41/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.setTabl
[20/39] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/42058127 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/42058127 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/42058127 Branch: refs/heads/HBASE-19064 Commit: 42058127fd6b05ba120c6f93bdc08b00cdaed04d Parents: eb5cd3a Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu Jun 28 11:22:31 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/42058127/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/42058127/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/42058127/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[30/37] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6d392bc9 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6d392bc9 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6d392bc9 Branch: refs/heads/HBASE-19064 Commit: 6d392bc9c5dd17cf1c99136c2632cd5a5cf40f37 Parents: a4b6a68 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed Jun 27 16:48:14 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/6d392bc9/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/6d392bc9/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/6d392bc9/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[21/38] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/bf7fc60b Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/bf7fc60b Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/bf7fc60b Branch: refs/heads/HBASE-19064 Commit: bf7fc60bfc89f3b8c94f452170780b5f4204d315 Parents: abba133 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed Jun 27 11:35:53 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/bf7fc60b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/bf7fc60b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/bf7fc60b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[40/48] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0600409b Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0600409b Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0600409b Branch: refs/heads/HBASE-19064 Commit: 0600409b2e59c5d404b6c28c6ca28d14176713c6 Parents: 6bedfe6 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue Jun 26 14:26:32 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/0600409b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/0600409b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/0600409b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[33/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7a3338c8 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7a3338c8 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7a3338c8 Branch: refs/heads/HBASE-19064 Commit: 7a3338c85741354fc0408d80c7ec56e60c3dcaa7 Parents: 4838aba Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu Jun 21 10:20:15 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/7a3338c8/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/7a3338c8/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/7a3338c8/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[27/40] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/64243eac Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/64243eac Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/64243eac Branch: refs/heads/HBASE-19064 Commit: 64243eaca20f76149d893736e53634d990e24cc2 Parents: 4495f97 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Sun Jun 10 22:44:27 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/64243eac/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/64243eac/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/64243eac/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[21/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5d1ecc4c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5d1ecc4c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5d1ecc4c Branch: refs/heads/HBASE-19064 Commit: 5d1ecc4cd08cf3b529deca776bd9c3081c398e9d Parents: 84ef137 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue Jun 5 17:24:38 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/5d1ecc4c/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/5d1ecc4c/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/5d1ecc4c/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[24/36] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7c326e6c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7c326e6c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7c326e6c Branch: refs/heads/HBASE-19064 Commit: 7c326e6c5867ac5505e05a333ff43954ed47a852 Parents: 7f1dbdf Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu May 31 14:31:01 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/7c326e6c/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/7c326e6c/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/7c326e6c/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[23/43] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/59282a0c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/59282a0c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/59282a0c Branch: refs/heads/HBASE-19064 Commit: 59282a0cff84ffe576fea31a9a6a9b8398d779d0 Parents: 18f15cd Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed May 30 21:01:01 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/59282a0c/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/59282a0c/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/59282a0c/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[14/34] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/fdbb58f0 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/fdbb58f0 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/fdbb58f0 Branch: refs/heads/HBASE-19064 Commit: fdbb58f08e48d14c573de6882b570f726538372f Parents: 95367d4 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Mon May 28 15:40:03 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/fdbb58f0/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/fdbb58f0/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/fdbb58f0/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[16/36] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/32a038d5 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/32a038d5 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/32a038d5 Branch: refs/heads/HBASE-19064 Commit: 32a038d5fd2208810c8c7de82e7a4cf7e3b8e2c5 Parents: 4aafd9b Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Fri May 25 10:11:48 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/32a038d5/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/32a038d5/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/32a038d5/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[11/37] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7d3d5554 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7d3d5554 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7d3d5554 Branch: refs/heads/HBASE-19064 Commit: 7d3d555479c30ea3d23235a21ab842f59dfca240 Parents: e7347d0 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu May 24 11:13:58 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/7d3d5554/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/7d3d5554/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/7d3d5554/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[06/32] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/df812b6a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/df812b6a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/df812b6a Branch: refs/heads/HBASE-19064 Commit: df812b6a16f17099c13824d31044a3bc95f29c1a Parents: 67830da Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Mon May 21 11:36:05 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/df812b6a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/df812b6a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/df812b6a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[10/36] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/99ad4e6b Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/99ad4e6b Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/99ad4e6b Branch: refs/heads/HBASE-19064 Commit: 99ad4e6b869ab5f0060d20aa0c71b24d90dacdfd Parents: bb87b0f Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu May 17 17:09:36 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/99ad4e6b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/99ad4e6b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/99ad4e6b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[04/29] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/963b58fd Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/963b58fd Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/963b58fd Branch: refs/heads/HBASE-19064 Commit: 963b58fdae6a50e1732cbb415944579d862c34c9 Parents: fc625d0 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed May 16 09:06:30 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/963b58fd/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/963b58fd/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/963b58fd/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[04/27] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/72a07b44 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/72a07b44 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/72a07b44 Branch: refs/heads/master Commit: 72a07b4401c6514b5c534c533c2576c0ee36a747 Parents: aafbb8c Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue May 15 08:39:04 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.setTabl
[21/32] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/72a07b44 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/72a07b44 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/72a07b44 Branch: refs/heads/HBASE-19064 Commit: 72a07b4401c6514b5c534c533c2576c0ee36a747 Parents: aafbb8c Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue May 15 08:39:04 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/72a07b44/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[23/34] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f8f59b26 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f8f59b26 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f8f59b26 Branch: refs/heads/HBASE-19064 Commit: f8f59b26cfa8b50c215d4d4d89b33e0218544620 Parents: 280a80e Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Sat May 12 20:22:07 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/f8f59b26/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/f8f59b26/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/f8f59b26/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[14/34] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/64a88bbb Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/64a88bbb Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/64a88bbb Branch: refs/heads/HBASE-19064 Commit: 64a88bbbc6cb091949b8b12c0a9e666a8fc8397f Parents: ace9c75 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed May 9 17:38:13 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/64a88bbb/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/64a88bbb/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/64a88bbb/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[27/31] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0ca90e96 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0ca90e96 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0ca90e96 Branch: refs/heads/HBASE-19064 Commit: 0ca90e9691aa813e71a823da5ccdd4589436ecd4 Parents: dff080b Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue May 8 20:15:45 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/0ca90e96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/0ca90e96/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/0ca90e96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[25/29] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/db7f143a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/db7f143a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/db7f143a Branch: refs/heads/HBASE-19064 Commit: db7f143a39743f9c4e7c7cb23e00294e41de4a2d Parents: 5065223 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Mon May 7 10:43:47 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/db7f143a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/db7f143a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/db7f143a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[11/29] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b5568d3f Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b5568d3f Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b5568d3f Branch: refs/heads/HBASE-19064 Commit: b5568d3f4649b1e8184e7d6b4d93fd3aeb3003b4 Parents: ff1e79a Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Fri May 4 17:46:18 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/b5568d3f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/b5568d3f/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/b5568d3f/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[19/28] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7c9555a0 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7c9555a0 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7c9555a0 Branch: refs/heads/HBASE-19064 Commit: 7c9555a0ce00263f6485d40cb2160c65b9224230 Parents: 353b3b6 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu May 3 21:23:40 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/7c9555a0/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/7c9555a0/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/7c9555a0/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[42/43] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4ec9cada Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4ec9cada Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4ec9cada Branch: refs/heads/HBASE-19064 Commit: 4ec9cadae911c27495ae30a038b97fe03b55290e Parents: c9c1a61 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed May 2 10:51:10 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/4ec9cada/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/4ec9cada/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/4ec9cada/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[05/23] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/763ac6e7 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/763ac6e7 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/763ac6e7 Branch: refs/heads/HBASE-19064 Commit: 763ac6e7b2c39561769a8da7e84b7c0737572b6c Parents: 859a9d6 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed Apr 25 17:20:58 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/763ac6e7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/763ac6e7/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/763ac6e7/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[17/23] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/621534f2 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/621534f2 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/621534f2 Branch: refs/heads/HBASE-19064 Commit: 621534f2dc4f99e3f10aaffbff8a735998522294 Parents: b2444e9 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue Apr 24 22:00:20 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/621534f2/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/621534f2/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/621534f2/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[33/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0ef449ab Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0ef449ab Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0ef449ab Branch: refs/heads/HBASE-19064 Commit: 0ef449ab59d991e2ca6ddf7befa3653c855a0041 Parents: aa7100c Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Mon Apr 23 16:05:00 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/0ef449ab/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/0ef449ab/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/0ef449ab/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[40/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/56a582b5 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/56a582b5 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/56a582b5 Branch: refs/heads/HBASE-19064 Commit: 56a582b560dd222a9b349a58282726eee18e32f7 Parents: 2b4596b Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue Apr 17 14:40:29 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/56a582b5/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/56a582b5/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/56a582b5/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[25/30] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4bb4d521 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4bb4d521 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4bb4d521 Branch: refs/heads/HBASE-19064 Commit: 4bb4d5213062a34c1daf7222c374ffa58d64065f Parents: d35ba3f Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed Apr 11 14:56:43 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/4bb4d521/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/4bb4d521/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/4bb4d521/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[43/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7b2ae50e Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7b2ae50e Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7b2ae50e Branch: refs/heads/HBASE-19064 Commit: 7b2ae50e74d5209e9d0ff98f6176f3297b9dad9b Parents: 0d1d142 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Sun Apr 8 17:16:00 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/7b2ae50e/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/7b2ae50e/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/7b2ae50e/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.set
[48/50] [abbrv] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8cc1d7aa Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8cc1d7aa Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8cc1d7aa Branch: refs/heads/HBASE-19064 Commit: 8cc1d7aa7e33cf739e854113fbc3f58e3811a83b Parents: bf670c5 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Tue Mar 27 17:49:33 2018 +0800 -- .../replication/ReplicationPeerManager.java | 14 - .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 .../hbase/replication/TestSyncReplication.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/8cc1d7aa/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index 0dc922d..41dd6e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,20 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + ReplicationPeerConfig preRemovePeer(String peerId) throws DoNotRetryIOException { -return checkPeerExists(peerId).getPeerConfig(); +ReplicationPeerDescription pd = checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); +return pd.getPeerConfig(); } void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/8cc1d7aa/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/8cc1d7aa/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.se
[18/18] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/669e80d8 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/669e80d8 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/669e80d8 Branch: refs/heads/HBASE-19064 Commit: 669e80d830be8e97c88cb58465773b528bc6905f Parents: 38a072b Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Thu Mar 8 22:44:41 2018 +0800 -- .../replication/ReplicationPeerManager.java | 11 .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 3 files changed, 75 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/669e80d8/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index d80e9a4..6698aa5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,19 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + public void preRemovePeer(String peerId) throws DoNotRetryIOException { checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); } public void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/669e80d8/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/669e80d8/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.setTableCFsMap(tableCfs); +hbaseAdmin.addReplicationPeer(ID_ONE, builder.build()); +assertEquals(SyncReplicationState.DOWNGRADE_ACTIVE, + hbaseAdmin.getReplicationPeerSyn
[32/33] hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/31f1752c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/31f1752c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/31f1752c Branch: refs/heads/HBASE-19064 Commit: 31f1752c3e2294f698c83b0a98a64f7a12548ca7 Parents: 41cf435 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: zhangduo Committed: Wed Mar 7 18:14:00 2018 +0800 -- .../replication/ReplicationPeerManager.java | 11 .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 3 files changed, 75 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/31f1752c/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index d80e9a4..6698aa5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,19 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + public void preRemovePeer(String peerId) throws DoNotRetryIOException { checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); } public void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/31f1752c/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/31f1752c/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.setTableCFsMap(tableCfs); +hbaseAdmin.addReplicationPeer(ID_ONE, builder.build()); +assertEquals(SyncReplicationState.DOWNGRADE_ACTIVE, + hbaseAdmin.getReplicationPeerSyn
hbase git commit: HBASE-19943 Only allow removing sync replication peer which is in DA state
Repository: hbase Updated Branches: refs/heads/HBASE-19064 3301f9757 -> ad25386e2 HBASE-19943 Only allow removing sync replication peer which is in DA state Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ad25386e Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ad25386e Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ad25386e Branch: refs/heads/HBASE-19064 Commit: ad25386e2547d987a71f2ed0372514af8ada3e3a Parents: 3301f97 Author: huzheng Authored: Thu Mar 1 18:34:02 2018 +0800 Committer: huzheng Committed: Fri Mar 2 17:40:47 2018 +0800 -- .../replication/ReplicationPeerManager.java | 11 .../hbase/wal/SyncReplicationWALProvider.java | 2 +- .../replication/TestReplicationAdmin.java | 63 3 files changed, 75 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/ad25386e/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java index d80e9a4..6698aa5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java @@ -120,8 +120,19 @@ public class ReplicationPeerManager { return desc; } + private void checkPeerInDAStateIfSyncReplication(String peerId) throws DoNotRetryIOException { +ReplicationPeerDescription desc = peers.get(peerId); +if (desc != null && desc.getPeerConfig().isSyncReplication() +&& !SyncReplicationState.DOWNGRADE_ACTIVE.equals(desc.getSyncReplicationState())) { + throw new DoNotRetryIOException("Couldn't remove synchronous replication peer with state=" + + desc.getSyncReplicationState() + + ", Transit the synchronous replication state to be DOWNGRADE_ACTIVE firstly."); +} + } + public void preRemovePeer(String peerId) throws DoNotRetryIOException { checkPeerExists(peerId); +checkPeerInDAStateIfSyncReplication(peerId); } public void preEnablePeer(String peerId) throws DoNotRetryIOException { http://git-wip-us.apache.org/repos/asf/hbase/blob/ad25386e/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java index ac4b4cd..282aa21 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/SyncReplicationWALProvider.java @@ -142,7 +142,7 @@ public class SyncReplicationWALProvider implements WALProvider, PeerActionListen @Override public WAL getWAL(RegionInfo region) throws IOException { if (region == null) { - return provider.getWAL(region); + return provider.getWAL(null); } Optional> peerIdAndRemoteWALDir = peerInfoProvider.getPeerIdAndRemoteWALDir(region); http://git-wip-us.apache.org/repos/asf/hbase/blob/ad25386e/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java -- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 0ad476f..486ab51 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -254,6 +254,62 @@ public class TestReplicationAdmin { } @Test + public void testRemovePeerWithNonDAState() throws Exception { +TableName tableName = TableName.valueOf(name.getMethodName()); +TEST_UTIL.createTable(tableName, Bytes.toBytes("family")); +ReplicationPeerConfigBuilder builder = ReplicationPeerConfig.newBuilder(); + +String rootDir = "hdfs://srv1:/hbase"; +builder.setClusterKey(KEY_ONE); +builder.setRemoteWALDir(rootDir); +builder.setReplicateAllUserTables(false); +Map> tableCfs = new HashMap<>(); +tableCfs.put(tableName, new ArrayList<>()); +builder.setTableCFsMap(tableCfs); +hbaseAdmin.addReplicationPeer(ID_ONE, builder.build()); +assert