From 3efaf610fb2506a947b6937bc358ba65c2e27fe1 Mon Sep 17 00:00:00 2001 From: Mikhail Antonov Date: Tue, 14 Jun 2016 15:24:21 -0700 Subject: [PATCH] Revert HBASE-15406 from branch-1.3 --- .../java/org/apache/hadoop/hbase/client/Admin.java | 14 - .../hadoop/hbase/client/ConnectionManager.java | 7 - .../org/apache/hadoop/hbase/client/HBaseAdmin.java | 18 +- .../hadoop/hbase/protobuf/RequestConverter.java | 11 +- .../hadoop/hbase/zookeeper/ZooKeeperWatcher.java | 10 - .../hbase/protobuf/generated/MasterProtos.java | 1891 ++++++-------------- .../hbase/protobuf/generated/ZooKeeperProtos.java | 553 +----- hbase-protocol/src/main/protobuf/Master.proto | 13 - hbase-protocol/src/main/protobuf/ZooKeeper.proto | 10 +- .../hadoop/hbase/master/MasterRpcServices.java | 24 - .../org/apache/hadoop/hbase/util/HBaseFsck.java | 160 +- .../hbase/zookeeper/SplitOrMergeTracker.java | 85 - .../hbase/client/TestSplitOrMergeStatus.java | 39 +- .../apache/hadoop/hbase/util/TestHBaseFsck.java | 59 +- hbase-shell/src/main/ruby/hbase/admin.rb | 2 +- 15 files changed, 622 insertions(+), 2274 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java index 7b1d016..7f2089d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java @@ -1500,15 +1500,10 @@ public interface Admin extends Abortable, Closeable { * * @param enabled enabled or not * @param synchronous If true, it waits until current split() call, if outstanding, to return. - * @param skipLock if false, we will do lock before change switch. - * with the lock, other requests to change the switch will be rejected! - * And when you set it to be false, - * you should call {@link #releaseSplitOrMergeLockAndRollback()} by yourself * @param switchTypes switchType list {@link MasterSwitchType} * @return Previous switch value array */ boolean[] setSplitOrMergeEnabled(final boolean enabled, final boolean synchronous, - final boolean skipLock, final MasterSwitchType... switchTypes) throws IOException; /** @@ -1518,15 +1513,6 @@ public interface Admin extends Abortable, Closeable { */ boolean isSplitOrMergeEnabled(final MasterSwitchType switchType) throws IOException; - /** - * You should call this method after you call - * {@link #setSplitOrMergeEnabled(boolean, boolean, boolean, MasterSwitchType...)} - * with skipLock be false, this method will release the lock created by above method - * and rollback the switch state to be original state before you change switch - * */ - void releaseSplitOrMergeLockAndRollback() throws IOException; - - @Deprecated @InterfaceAudience.Public @InterfaceStability.Evolving public enum MasterSwitchType { diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java index a000a41..b055884 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java @@ -2106,13 +2106,6 @@ class ConnectionManager { } @Override - public MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse - releaseSplitOrMergeLockAndRollback(RpcController controller, - MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request) throws ServiceException { - return stub.releaseSplitOrMergeLockAndRollback(controller, request); - } - - @Override public IsNormalizerEnabledResponse isNormalizerEnabled(RpcController controller, IsNormalizerEnabledRequest request) throws ServiceException { return stub.isNormalizerEnabled(controller, request); diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index bf85ada..37d7735 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -4808,13 +4808,13 @@ public class HBaseAdmin implements Admin { @Override public boolean[] setSplitOrMergeEnabled(final boolean enabled, final boolean synchronous, - final boolean skipLock, final MasterSwitchType... switchTypes) throws IOException { + final MasterSwitchType... switchTypes) + throws IOException { return executeCallable(new MasterCallable(getConnection()) { @Override public boolean[] call(int callTimeout) throws ServiceException { MasterProtos.SetSplitOrMergeEnabledResponse response = master.setSplitOrMergeEnabled(null, - RequestConverter.buildSetSplitOrMergeEnabledRequest(enabled, synchronous, - skipLock, switchTypes)); + RequestConverter.buildSetSplitOrMergeEnabledRequest(enabled, synchronous, switchTypes)); boolean[] result = new boolean[switchTypes.length]; int i = 0; for (Boolean prevValue : response.getPrevValueList()) { @@ -4836,18 +4836,6 @@ public class HBaseAdmin implements Admin { }); } - @Override - public void releaseSplitOrMergeLockAndRollback() throws IOException { - executeCallable(new MasterCallable(getConnection()) { - @Override - public Void call(int callTimeout) throws ServiceException { - master.releaseSplitOrMergeLockAndRollback(null, - RequestConverter.buildReleaseSplitOrMergeLockAndRollbackRequest()); - return null; - } - }); - } - private RpcControllerFactory getRpcControllerFactory() { return rpcControllerFactory; } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java index 337b0f3..3b9d366 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java @@ -104,7 +104,6 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MoveRegionRequest import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.OfflineRegionRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest; -import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetBalancerRunningRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledRequest; @@ -1748,13 +1747,6 @@ public final class RequestConverter { return builder.build(); } - public static ReleaseSplitOrMergeLockAndRollbackRequest - buildReleaseSplitOrMergeLockAndRollbackRequest() { - ReleaseSplitOrMergeLockAndRollbackRequest.Builder builder = - ReleaseSplitOrMergeLockAndRollbackRequest.newBuilder(); - return builder.build(); - } - /** * Creates a protocol buffer SetSplitOrMergeEnabledRequest * @@ -1765,11 +1757,10 @@ public final class RequestConverter { * @return a SetSplitOrMergeEnabledRequest */ public static SetSplitOrMergeEnabledRequest buildSetSplitOrMergeEnabledRequest(boolean enabled, - boolean synchronous, boolean skipLock, Admin.MasterSwitchType... switchTypes) { + boolean synchronous, Admin.MasterSwitchType... switchTypes) { SetSplitOrMergeEnabledRequest.Builder builder = SetSplitOrMergeEnabledRequest.newBuilder(); builder.setEnabled(enabled); builder.setSynchronous(synchronous); - builder.setSkipLock(skipLock); for (Admin.MasterSwitchType switchType : switchTypes) { builder.addSwitchTypes(convert(switchType)); } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java index e6c8eb9..d89041d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java @@ -120,8 +120,6 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable { private String regionNormalizerZNode; // znode containing the state of all switches, currently there are split and merge child node. private String switchZNode; - // znode containing the lock for the switches - private String switchLockZNode; // znode containing the lock for the tables public String tableLockZNode; // znode containing the state of recovering regions @@ -443,7 +441,6 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable { regionNormalizerZNode = ZKUtil.joinZNode(baseZNode, conf.get("zookeeper.znode.regionNormalizer", "normalizer")); switchZNode = ZKUtil.joinZNode(baseZNode, conf.get("zookeeper.znode.switch", "switch")); - switchLockZNode = ZKUtil.joinZNode(switchZNode, "locks"); tableLockZNode = ZKUtil.joinZNode(baseZNode, conf.get("zookeeper.znode.tableLock", "table-lock")); recoveringRegionsZNode = ZKUtil.joinZNode(baseZNode, @@ -787,11 +784,4 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable { public String getSwitchZNode() { return switchZNode; } - - /** - * @return ZK node for switchLock node. - * */ - public String getSwitchLockZNode() { - return switchLockZNode; - } } diff --git a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java index 39619c4..588cc86 100644 --- a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java +++ b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java @@ -28114,16 +28114,6 @@ public final class MasterProtos { * repeated .hbase.pb.MasterSwitchType switch_types = 3; */ org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterSwitchType getSwitchTypes(int index); - - // optional bool skip_lock = 4; - /** - * optional bool skip_lock = 4; - */ - boolean hasSkipLock(); - /** - * optional bool skip_lock = 4; - */ - boolean getSkipLock(); } /** * Protobuf type {@code hbase.pb.SetSplitOrMergeEnabledRequest} @@ -28219,11 +28209,6 @@ public final class MasterProtos { input.popLimit(oldLimit); break; } - case 32: { - bitField0_ |= 0x00000004; - skipLock_ = input.readBool(); - break; - } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -28321,27 +28306,10 @@ public final class MasterProtos { return switchTypes_.get(index); } - // optional bool skip_lock = 4; - public static final int SKIP_LOCK_FIELD_NUMBER = 4; - private boolean skipLock_; - /** - * optional bool skip_lock = 4; - */ - public boolean hasSkipLock() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - /** - * optional bool skip_lock = 4; - */ - public boolean getSkipLock() { - return skipLock_; - } - private void initFields() { enabled_ = false; synchronous_ = false; switchTypes_ = java.util.Collections.emptyList(); - skipLock_ = false; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -28368,9 +28336,6 @@ public final class MasterProtos { for (int i = 0; i < switchTypes_.size(); i++) { output.writeEnum(3, switchTypes_.get(i).getNumber()); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBool(4, skipLock_); - } getUnknownFields().writeTo(output); } @@ -28397,10 +28362,6 @@ public final class MasterProtos { size += dataSize; size += 1 * switchTypes_.size(); } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(4, skipLock_); - } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -28436,11 +28397,6 @@ public final class MasterProtos { } result = result && getSwitchTypesList() .equals(other.getSwitchTypesList()); - result = result && (hasSkipLock() == other.hasSkipLock()); - if (hasSkipLock()) { - result = result && (getSkipLock() - == other.getSkipLock()); - } result = result && getUnknownFields().equals(other.getUnknownFields()); return result; @@ -28466,10 +28422,6 @@ public final class MasterProtos { hash = (37 * hash) + SWITCH_TYPES_FIELD_NUMBER; hash = (53 * hash) + hashEnumList(getSwitchTypesList()); } - if (hasSkipLock()) { - hash = (37 * hash) + SKIP_LOCK_FIELD_NUMBER; - hash = (53 * hash) + hashBoolean(getSkipLock()); - } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -28585,8 +28537,6 @@ public final class MasterProtos { bitField0_ = (bitField0_ & ~0x00000002); switchTypes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); - skipLock_ = false; - bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -28628,10 +28578,6 @@ public final class MasterProtos { bitField0_ = (bitField0_ & ~0x00000004); } result.switchTypes_ = switchTypes_; - if (((from_bitField0_ & 0x00000008) == 0x00000008)) { - to_bitField0_ |= 0x00000004; - } - result.skipLock_ = skipLock_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -28664,9 +28610,6 @@ public final class MasterProtos { } onChanged(); } - if (other.hasSkipLock()) { - setSkipLock(other.getSkipLock()); - } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -28836,39 +28779,6 @@ public final class MasterProtos { return this; } - // optional bool skip_lock = 4; - private boolean skipLock_ ; - /** - * optional bool skip_lock = 4; - */ - public boolean hasSkipLock() { - return ((bitField0_ & 0x00000008) == 0x00000008); - } - /** - * optional bool skip_lock = 4; - */ - public boolean getSkipLock() { - return skipLock_; - } - /** - * optional bool skip_lock = 4; - */ - public Builder setSkipLock(boolean value) { - bitField0_ |= 0x00000008; - skipLock_ = value; - onChanged(); - return this; - } - /** - * optional bool skip_lock = 4; - */ - public Builder clearSkipLock() { - bitField0_ = (bitField0_ & ~0x00000008); - skipLock_ = false; - onChanged(); - return this; - } - // @@protoc_insertion_point(builder_scope:hbase.pb.SetSplitOrMergeEnabledRequest) } @@ -30274,682 +30184,6 @@ public final class MasterProtos { // @@protoc_insertion_point(class_scope:hbase.pb.IsSplitOrMergeEnabledResponse) } - public interface ReleaseSplitOrMergeLockAndRollbackRequestOrBuilder - extends com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest} - */ - public static final class ReleaseSplitOrMergeLockAndRollbackRequest extends - com.google.protobuf.GeneratedMessage - implements ReleaseSplitOrMergeLockAndRollbackRequestOrBuilder { - // Use ReleaseSplitOrMergeLockAndRollbackRequest.newBuilder() to construct. - private ReleaseSplitOrMergeLockAndRollbackRequest(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ReleaseSplitOrMergeLockAndRollbackRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ReleaseSplitOrMergeLockAndRollbackRequest defaultInstance; - public static ReleaseSplitOrMergeLockAndRollbackRequest getDefaultInstance() { - return defaultInstance; - } - - public ReleaseSplitOrMergeLockAndRollbackRequest getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ReleaseSplitOrMergeLockAndRollbackRequest( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - initFields(); - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFields, - extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ReleaseSplitOrMergeLockAndRollbackRequest parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ReleaseSplitOrMergeLockAndRollbackRequest(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private void initFields() { - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest)) { - return super.equals(obj); - } - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest) obj; - - boolean result = true; - result = result && - getUnknownFields().equals(other.getUnknownFields()); - return result; - } - - private int memoizedHashCode = 0; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequestOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.Builder.class); - } - - // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor; - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest getDefaultInstanceForType() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.getDefaultInstance(); - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest build() { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest buildPartial() { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest(this); - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest) { - return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest other) { - if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - return this; - } - - public final boolean isInitialized() { - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - // @@protoc_insertion_point(builder_scope:hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest) - } - - static { - defaultInstance = new ReleaseSplitOrMergeLockAndRollbackRequest(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest) - } - - public interface ReleaseSplitOrMergeLockAndRollbackResponseOrBuilder - extends com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse} - */ - public static final class ReleaseSplitOrMergeLockAndRollbackResponse extends - com.google.protobuf.GeneratedMessage - implements ReleaseSplitOrMergeLockAndRollbackResponseOrBuilder { - // Use ReleaseSplitOrMergeLockAndRollbackResponse.newBuilder() to construct. - private ReleaseSplitOrMergeLockAndRollbackResponse(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private ReleaseSplitOrMergeLockAndRollbackResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final ReleaseSplitOrMergeLockAndRollbackResponse defaultInstance; - public static ReleaseSplitOrMergeLockAndRollbackResponse getDefaultInstance() { - return defaultInstance; - } - - public ReleaseSplitOrMergeLockAndRollbackResponse getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ReleaseSplitOrMergeLockAndRollbackResponse( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - initFields(); - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFields, - extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public ReleaseSplitOrMergeLockAndRollbackResponse parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ReleaseSplitOrMergeLockAndRollbackResponse(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private void initFields() { - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse)) { - return super.equals(obj); - } - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse) obj; - - boolean result = true; - result = result && - getUnknownFields().equals(other.getUnknownFields()); - return result; - } - - private int memoizedHashCode = 0; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponseOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.Builder.class); - } - - // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor; - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse getDefaultInstanceForType() { - return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance(); - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse build() { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse buildPartial() { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse(this); - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse) { - return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse other) { - if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - return this; - } - - public final boolean isInitialized() { - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - // @@protoc_insertion_point(builder_scope:hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse) - } - - static { - defaultInstance = new ReleaseSplitOrMergeLockAndRollbackResponse(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse) - } - public interface NormalizeRequestOrBuilder extends com.google.protobuf.MessageOrBuilder { } @@ -58429,19 +57663,6 @@ public final class MasterProtos { com.google.protobuf.RpcCallback done); /** - * rpc ReleaseSplitOrMergeLockAndRollback(.hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest) returns (.hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse); - * - *
-       **
-       * Release lock and rollback state.
-       * 
- */ - public abstract void releaseSplitOrMergeLockAndRollback( - com.google.protobuf.RpcController controller, - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request, - com.google.protobuf.RpcCallback done); - - /** * rpc Normalize(.hbase.pb.NormalizeRequest) returns (.hbase.pb.NormalizeResponse); * *
@@ -59027,14 +58248,6 @@ public final class MasterProtos {
         }
 
         @java.lang.Override
-        public  void releaseSplitOrMergeLockAndRollback(
-            com.google.protobuf.RpcController controller,
-            org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request,
-            com.google.protobuf.RpcCallback done) {
-          impl.releaseSplitOrMergeLockAndRollback(controller, request, done);
-        }
-
-        @java.lang.Override
         public  void normalize(
             com.google.protobuf.RpcController controller,
             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest request,
@@ -59349,66 +58562,64 @@ public final class MasterProtos {
             case 25:
               return impl.isSplitOrMergeEnabled(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest)request);
             case 26:
-              return impl.releaseSplitOrMergeLockAndRollback(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest)request);
-            case 27:
               return impl.normalize(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest)request);
-            case 28:
+            case 27:
               return impl.setNormalizerRunning(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest)request);
-            case 29:
+            case 28:
               return impl.isNormalizerEnabled(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest)request);
-            case 30:
+            case 29:
               return impl.runCatalogScan(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest)request);
-            case 31:
+            case 30:
               return impl.enableCatalogJanitor(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest)request);
-            case 32:
+            case 31:
               return impl.isCatalogJanitorEnabled(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest)request);
-            case 33:
+            case 32:
               return impl.execMasterService(controller, (org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest)request);
-            case 34:
+            case 33:
               return impl.snapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest)request);
-            case 35:
+            case 34:
               return impl.getCompletedSnapshots(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest)request);
-            case 36:
+            case 35:
               return impl.deleteSnapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest)request);
-            case 37:
+            case 36:
               return impl.isSnapshotDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest)request);
-            case 38:
+            case 37:
               return impl.restoreSnapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest)request);
-            case 39:
+            case 38:
               return impl.isRestoreSnapshotDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest)request);
-            case 40:
+            case 39:
               return impl.execProcedure(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest)request);
-            case 41:
+            case 40:
               return impl.execProcedureWithRet(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest)request);
-            case 42:
+            case 41:
               return impl.isProcedureDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest)request);
-            case 43:
+            case 42:
               return impl.modifyNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest)request);
-            case 44:
+            case 43:
               return impl.createNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest)request);
-            case 45:
+            case 44:
               return impl.deleteNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest)request);
-            case 46:
+            case 45:
               return impl.getNamespaceDescriptor(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest)request);
-            case 47:
+            case 46:
               return impl.listNamespaceDescriptors(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest)request);
-            case 48:
+            case 47:
               return impl.listTableDescriptorsByNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest)request);
-            case 49:
+            case 48:
               return impl.listTableNamesByNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest)request);
-            case 50:
+            case 49:
               return impl.setQuota(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest)request);
-            case 51:
+            case 50:
               return impl.getLastMajorCompactionTimestamp(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest)request);
-            case 52:
+            case 51:
               return impl.getLastMajorCompactionTimestampForRegion(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest)request);
-            case 53:
+            case 52:
               return impl.getProcedureResult(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest)request);
-            case 54:
+            case 53:
               return impl.getSecurityCapabilities(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest)request);
-            case 55:
+            case 54:
               return impl.abortProcedure(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest)request);
-            case 56:
+            case 55:
               return impl.listProcedures(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest)request);
             default:
               throw new java.lang.AssertionError("Can't get here.");
@@ -59477,66 +58688,64 @@ public final class MasterProtos {
             case 25:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest.getDefaultInstance();
             case 26:
-              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.getDefaultInstance();
-            case 27:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest.getDefaultInstance();
-            case 28:
+            case 27:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest.getDefaultInstance();
-            case 29:
+            case 28:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest.getDefaultInstance();
-            case 30:
+            case 29:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest.getDefaultInstance();
-            case 31:
+            case 30:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest.getDefaultInstance();
-            case 32:
+            case 31:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest.getDefaultInstance();
-            case 33:
+            case 32:
               return org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest.getDefaultInstance();
-            case 34:
+            case 33:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest.getDefaultInstance();
-            case 35:
+            case 34:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest.getDefaultInstance();
-            case 36:
+            case 35:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest.getDefaultInstance();
-            case 37:
+            case 36:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest.getDefaultInstance();
-            case 38:
+            case 37:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest.getDefaultInstance();
-            case 39:
+            case 38:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest.getDefaultInstance();
+            case 39:
+              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
             case 40:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
             case 41:
-              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
-            case 42:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest.getDefaultInstance();
-            case 43:
+            case 42:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest.getDefaultInstance();
-            case 44:
+            case 43:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest.getDefaultInstance();
-            case 45:
+            case 44:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest.getDefaultInstance();
-            case 46:
+            case 45:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest.getDefaultInstance();
-            case 47:
+            case 46:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest.getDefaultInstance();
-            case 48:
+            case 47:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest.getDefaultInstance();
-            case 49:
+            case 48:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest.getDefaultInstance();
-            case 50:
+            case 49:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest.getDefaultInstance();
-            case 51:
+            case 50:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest.getDefaultInstance();
-            case 52:
+            case 51:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest.getDefaultInstance();
-            case 53:
+            case 52:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest.getDefaultInstance();
-            case 54:
+            case 53:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest.getDefaultInstance();
-            case 55:
+            case 54:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest.getDefaultInstance();
-            case 56:
+            case 55:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest.getDefaultInstance();
             default:
               throw new java.lang.AssertionError("Can't get here.");
@@ -59605,66 +58814,64 @@ public final class MasterProtos {
             case 25:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse.getDefaultInstance();
             case 26:
-              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance();
-            case 27:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse.getDefaultInstance();
-            case 28:
+            case 27:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse.getDefaultInstance();
-            case 29:
+            case 28:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse.getDefaultInstance();
-            case 30:
+            case 29:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse.getDefaultInstance();
-            case 31:
+            case 30:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse.getDefaultInstance();
-            case 32:
+            case 31:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse.getDefaultInstance();
-            case 33:
+            case 32:
               return org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse.getDefaultInstance();
-            case 34:
+            case 33:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse.getDefaultInstance();
-            case 35:
+            case 34:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse.getDefaultInstance();
-            case 36:
+            case 35:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotResponse.getDefaultInstance();
-            case 37:
+            case 36:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse.getDefaultInstance();
-            case 38:
+            case 37:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse.getDefaultInstance();
-            case 39:
+            case 38:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse.getDefaultInstance();
+            case 39:
+              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
             case 40:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
             case 41:
-              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
-            case 42:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse.getDefaultInstance();
-            case 43:
+            case 42:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse.getDefaultInstance();
-            case 44:
+            case 43:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse.getDefaultInstance();
-            case 45:
+            case 44:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceResponse.getDefaultInstance();
-            case 46:
+            case 45:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse.getDefaultInstance();
-            case 47:
+            case 46:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse.getDefaultInstance();
-            case 48:
+            case 47:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse.getDefaultInstance();
-            case 49:
+            case 48:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse.getDefaultInstance();
-            case 50:
+            case 49:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse.getDefaultInstance();
+            case 50:
+              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
             case 51:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
             case 52:
-              return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
-            case 53:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse.getDefaultInstance();
-            case 54:
+            case 53:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse.getDefaultInstance();
-            case 55:
+            case 54:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance();
-            case 56:
+            case 55:
               return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance();
             default:
               throw new java.lang.AssertionError("Can't get here.");
@@ -60004,19 +59211,6 @@ public final class MasterProtos {
         com.google.protobuf.RpcCallback done);
 
     /**
-     * rpc ReleaseSplitOrMergeLockAndRollback(.hbase.pb.ReleaseSplitOrMergeLockAndRollbackRequest) returns (.hbase.pb.ReleaseSplitOrMergeLockAndRollbackResponse);
-     *
-     * 
-     **
-     * Release lock and rollback state.
-     * 
- */ - public abstract void releaseSplitOrMergeLockAndRollback( - com.google.protobuf.RpcController controller, - org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request, - com.google.protobuf.RpcCallback done); - - /** * rpc Normalize(.hbase.pb.NormalizeRequest) returns (.hbase.pb.NormalizeResponse); * *
@@ -60541,156 +59735,151 @@ public final class MasterProtos {
               done));
           return;
         case 26:
-          this.releaseSplitOrMergeLockAndRollback(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest)request,
-            com.google.protobuf.RpcUtil.specializeCallback(
-              done));
-          return;
-        case 27:
           this.normalize(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 28:
+        case 27:
           this.setNormalizerRunning(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 29:
+        case 28:
           this.isNormalizerEnabled(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 30:
+        case 29:
           this.runCatalogScan(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 31:
+        case 30:
           this.enableCatalogJanitor(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 32:
+        case 31:
           this.isCatalogJanitorEnabled(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 33:
+        case 32:
           this.execMasterService(controller, (org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 34:
+        case 33:
           this.snapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 35:
+        case 34:
           this.getCompletedSnapshots(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 36:
+        case 35:
           this.deleteSnapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 37:
+        case 36:
           this.isSnapshotDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 38:
+        case 37:
           this.restoreSnapshot(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 39:
+        case 38:
           this.isRestoreSnapshotDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 40:
+        case 39:
           this.execProcedure(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 41:
+        case 40:
           this.execProcedureWithRet(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 42:
+        case 41:
           this.isProcedureDone(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 43:
+        case 42:
           this.modifyNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 44:
+        case 43:
           this.createNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 45:
+        case 44:
           this.deleteNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 46:
+        case 45:
           this.getNamespaceDescriptor(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 47:
+        case 46:
           this.listNamespaceDescriptors(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 48:
+        case 47:
           this.listTableDescriptorsByNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 49:
+        case 48:
           this.listTableNamesByNamespace(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 50:
+        case 49:
           this.setQuota(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 51:
+        case 50:
           this.getLastMajorCompactionTimestamp(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 52:
+        case 51:
           this.getLastMajorCompactionTimestampForRegion(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 53:
+        case 52:
           this.getProcedureResult(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 54:
+        case 53:
           this.getSecurityCapabilities(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 55:
+        case 54:
           this.abortProcedure(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
           return;
-        case 56:
+        case 55:
           this.listProcedures(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest)request,
             com.google.protobuf.RpcUtil.specializeCallback(
               done));
@@ -60762,66 +59951,64 @@ public final class MasterProtos {
         case 25:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest.getDefaultInstance();
         case 26:
-          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest.getDefaultInstance();
-        case 27:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest.getDefaultInstance();
-        case 28:
+        case 27:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest.getDefaultInstance();
-        case 29:
+        case 28:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest.getDefaultInstance();
-        case 30:
+        case 29:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest.getDefaultInstance();
-        case 31:
+        case 30:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest.getDefaultInstance();
-        case 32:
+        case 31:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest.getDefaultInstance();
-        case 33:
+        case 32:
           return org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest.getDefaultInstance();
-        case 34:
+        case 33:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest.getDefaultInstance();
-        case 35:
+        case 34:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest.getDefaultInstance();
-        case 36:
+        case 35:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest.getDefaultInstance();
-        case 37:
+        case 36:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest.getDefaultInstance();
-        case 38:
+        case 37:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest.getDefaultInstance();
-        case 39:
+        case 38:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest.getDefaultInstance();
+        case 39:
+          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
         case 40:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
         case 41:
-          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest.getDefaultInstance();
-        case 42:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest.getDefaultInstance();
-        case 43:
+        case 42:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest.getDefaultInstance();
-        case 44:
+        case 43:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest.getDefaultInstance();
-        case 45:
+        case 44:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest.getDefaultInstance();
-        case 46:
+        case 45:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest.getDefaultInstance();
-        case 47:
+        case 46:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest.getDefaultInstance();
-        case 48:
+        case 47:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest.getDefaultInstance();
-        case 49:
+        case 48:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest.getDefaultInstance();
-        case 50:
+        case 49:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest.getDefaultInstance();
-        case 51:
+        case 50:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest.getDefaultInstance();
-        case 52:
+        case 51:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest.getDefaultInstance();
-        case 53:
+        case 52:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest.getDefaultInstance();
-        case 54:
+        case 53:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest.getDefaultInstance();
-        case 55:
+        case 54:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest.getDefaultInstance();
-        case 56:
+        case 55:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest.getDefaultInstance();
         default:
           throw new java.lang.AssertionError("Can't get here.");
@@ -60890,66 +60077,64 @@ public final class MasterProtos {
         case 25:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse.getDefaultInstance();
         case 26:
-          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance();
-        case 27:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse.getDefaultInstance();
-        case 28:
+        case 27:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse.getDefaultInstance();
-        case 29:
+        case 28:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse.getDefaultInstance();
-        case 30:
+        case 29:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse.getDefaultInstance();
-        case 31:
+        case 30:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse.getDefaultInstance();
-        case 32:
+        case 31:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse.getDefaultInstance();
-        case 33:
+        case 32:
           return org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse.getDefaultInstance();
-        case 34:
+        case 33:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse.getDefaultInstance();
-        case 35:
+        case 34:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse.getDefaultInstance();
-        case 36:
+        case 35:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotResponse.getDefaultInstance();
-        case 37:
+        case 36:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse.getDefaultInstance();
-        case 38:
+        case 37:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse.getDefaultInstance();
-        case 39:
+        case 38:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse.getDefaultInstance();
+        case 39:
+          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
         case 40:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
         case 41:
-          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance();
-        case 42:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse.getDefaultInstance();
-        case 43:
+        case 42:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse.getDefaultInstance();
-        case 44:
+        case 43:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse.getDefaultInstance();
-        case 45:
+        case 44:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceResponse.getDefaultInstance();
-        case 46:
+        case 45:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse.getDefaultInstance();
-        case 47:
+        case 46:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse.getDefaultInstance();
-        case 48:
+        case 47:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse.getDefaultInstance();
-        case 49:
+        case 48:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse.getDefaultInstance();
-        case 50:
+        case 49:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse.getDefaultInstance();
+        case 50:
+          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
         case 51:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
         case 52:
-          return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance();
-        case 53:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse.getDefaultInstance();
-        case 54:
+        case 53:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse.getDefaultInstance();
-        case 55:
+        case 54:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance();
-        case 56:
+        case 55:
           return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance();
         default:
           throw new java.lang.AssertionError("Can't get here.");
@@ -61362,27 +60547,12 @@ public final class MasterProtos {
             org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse.getDefaultInstance()));
       }
 
-      public  void releaseSplitOrMergeLockAndRollback(
-          com.google.protobuf.RpcController controller,
-          org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request,
-          com.google.protobuf.RpcCallback done) {
-        channel.callMethod(
-          getDescriptor().getMethods().get(26),
-          controller,
-          request,
-          org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance(),
-          com.google.protobuf.RpcUtil.generalizeCallback(
-            done,
-            org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.class,
-            org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance()));
-      }
-
       public  void normalize(
           com.google.protobuf.RpcController controller,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(27),
+          getDescriptor().getMethods().get(26),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse.getDefaultInstance(),
@@ -61397,7 +60567,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(28),
+          getDescriptor().getMethods().get(27),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse.getDefaultInstance(),
@@ -61412,7 +60582,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(29),
+          getDescriptor().getMethods().get(28),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse.getDefaultInstance(),
@@ -61427,7 +60597,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(30),
+          getDescriptor().getMethods().get(29),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse.getDefaultInstance(),
@@ -61442,7 +60612,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(31),
+          getDescriptor().getMethods().get(30),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse.getDefaultInstance(),
@@ -61457,7 +60627,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(32),
+          getDescriptor().getMethods().get(31),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse.getDefaultInstance(),
@@ -61472,7 +60642,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(33),
+          getDescriptor().getMethods().get(32),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse.getDefaultInstance(),
@@ -61487,7 +60657,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(34),
+          getDescriptor().getMethods().get(33),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse.getDefaultInstance(),
@@ -61502,7 +60672,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(35),
+          getDescriptor().getMethods().get(34),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse.getDefaultInstance(),
@@ -61517,7 +60687,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(36),
+          getDescriptor().getMethods().get(35),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotResponse.getDefaultInstance(),
@@ -61532,7 +60702,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(37),
+          getDescriptor().getMethods().get(36),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse.getDefaultInstance(),
@@ -61547,7 +60717,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(38),
+          getDescriptor().getMethods().get(37),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse.getDefaultInstance(),
@@ -61562,7 +60732,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(39),
+          getDescriptor().getMethods().get(38),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse.getDefaultInstance(),
@@ -61577,7 +60747,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(40),
+          getDescriptor().getMethods().get(39),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance(),
@@ -61592,7 +60762,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(41),
+          getDescriptor().getMethods().get(40),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance(),
@@ -61607,7 +60777,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(42),
+          getDescriptor().getMethods().get(41),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse.getDefaultInstance(),
@@ -61622,7 +60792,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(43),
+          getDescriptor().getMethods().get(42),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse.getDefaultInstance(),
@@ -61637,7 +60807,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(44),
+          getDescriptor().getMethods().get(43),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse.getDefaultInstance(),
@@ -61652,7 +60822,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(45),
+          getDescriptor().getMethods().get(44),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceResponse.getDefaultInstance(),
@@ -61667,7 +60837,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(46),
+          getDescriptor().getMethods().get(45),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse.getDefaultInstance(),
@@ -61682,7 +60852,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(47),
+          getDescriptor().getMethods().get(46),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse.getDefaultInstance(),
@@ -61697,7 +60867,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(48),
+          getDescriptor().getMethods().get(47),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse.getDefaultInstance(),
@@ -61712,7 +60882,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(49),
+          getDescriptor().getMethods().get(48),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse.getDefaultInstance(),
@@ -61727,7 +60897,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(50),
+          getDescriptor().getMethods().get(49),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse.getDefaultInstance(),
@@ -61742,7 +60912,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(51),
+          getDescriptor().getMethods().get(50),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance(),
@@ -61757,7 +60927,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(52),
+          getDescriptor().getMethods().get(51),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance(),
@@ -61772,7 +60942,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(53),
+          getDescriptor().getMethods().get(52),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse.getDefaultInstance(),
@@ -61787,7 +60957,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(54),
+          getDescriptor().getMethods().get(53),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse.getDefaultInstance(),
@@ -61802,7 +60972,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(55),
+          getDescriptor().getMethods().get(54),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance(),
@@ -61817,7 +60987,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest request,
           com.google.protobuf.RpcCallback done) {
         channel.callMethod(
-          getDescriptor().getMethods().get(56),
+          getDescriptor().getMethods().get(55),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance(),
@@ -61964,11 +61134,6 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest request)
           throws com.google.protobuf.ServiceException;
 
-      public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse releaseSplitOrMergeLockAndRollback(
-          com.google.protobuf.RpcController controller,
-          org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request)
-          throws com.google.protobuf.ServiceException;
-
       public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse normalize(
           com.google.protobuf.RpcController controller,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest request)
@@ -62439,24 +61604,12 @@ public final class MasterProtos {
       }
 
 
-      public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse releaseSplitOrMergeLockAndRollback(
-          com.google.protobuf.RpcController controller,
-          org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request)
-          throws com.google.protobuf.ServiceException {
-        return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(26),
-          controller,
-          request,
-          org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.getDefaultInstance());
-      }
-
-
       public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse normalize(
           com.google.protobuf.RpcController controller,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(27),
+          getDescriptor().getMethods().get(26),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse.getDefaultInstance());
@@ -62468,7 +61621,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(28),
+          getDescriptor().getMethods().get(27),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse.getDefaultInstance());
@@ -62480,7 +61633,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(29),
+          getDescriptor().getMethods().get(28),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse.getDefaultInstance());
@@ -62492,7 +61645,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(30),
+          getDescriptor().getMethods().get(29),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanResponse.getDefaultInstance());
@@ -62504,7 +61657,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(31),
+          getDescriptor().getMethods().get(30),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse.getDefaultInstance());
@@ -62516,7 +61669,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(32),
+          getDescriptor().getMethods().get(31),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse.getDefaultInstance());
@@ -62528,7 +61681,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(33),
+          getDescriptor().getMethods().get(32),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CoprocessorServiceResponse.getDefaultInstance());
@@ -62540,7 +61693,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(34),
+          getDescriptor().getMethods().get(33),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SnapshotResponse.getDefaultInstance());
@@ -62552,7 +61705,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(35),
+          getDescriptor().getMethods().get(34),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse.getDefaultInstance());
@@ -62564,7 +61717,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(36),
+          getDescriptor().getMethods().get(35),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteSnapshotResponse.getDefaultInstance());
@@ -62576,7 +61729,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(37),
+          getDescriptor().getMethods().get(36),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse.getDefaultInstance());
@@ -62588,7 +61741,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(38),
+          getDescriptor().getMethods().get(37),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RestoreSnapshotResponse.getDefaultInstance());
@@ -62600,7 +61753,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(39),
+          getDescriptor().getMethods().get(38),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse.getDefaultInstance());
@@ -62612,7 +61765,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(40),
+          getDescriptor().getMethods().get(39),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance());
@@ -62624,7 +61777,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(41),
+          getDescriptor().getMethods().get(40),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse.getDefaultInstance());
@@ -62636,7 +61789,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(42),
+          getDescriptor().getMethods().get(41),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse.getDefaultInstance());
@@ -62648,7 +61801,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(43),
+          getDescriptor().getMethods().get(42),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyNamespaceResponse.getDefaultInstance());
@@ -62660,7 +61813,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(44),
+          getDescriptor().getMethods().get(43),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse.getDefaultInstance());
@@ -62672,7 +61825,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(45),
+          getDescriptor().getMethods().get(44),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteNamespaceResponse.getDefaultInstance());
@@ -62684,7 +61837,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(46),
+          getDescriptor().getMethods().get(45),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse.getDefaultInstance());
@@ -62696,7 +61849,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(47),
+          getDescriptor().getMethods().get(46),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse.getDefaultInstance());
@@ -62708,7 +61861,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(48),
+          getDescriptor().getMethods().get(47),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse.getDefaultInstance());
@@ -62720,7 +61873,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(49),
+          getDescriptor().getMethods().get(48),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse.getDefaultInstance());
@@ -62732,7 +61885,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(50),
+          getDescriptor().getMethods().get(49),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetQuotaResponse.getDefaultInstance());
@@ -62744,7 +61897,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(51),
+          getDescriptor().getMethods().get(50),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance());
@@ -62756,7 +61909,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(52),
+          getDescriptor().getMethods().get(51),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse.getDefaultInstance());
@@ -62768,7 +61921,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(53),
+          getDescriptor().getMethods().get(52),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetProcedureResultResponse.getDefaultInstance());
@@ -62780,7 +61933,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(54),
+          getDescriptor().getMethods().get(53),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse.getDefaultInstance());
@@ -62792,7 +61945,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(55),
+          getDescriptor().getMethods().get(54),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance());
@@ -62804,7 +61957,7 @@ public final class MasterProtos {
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest request)
           throws com.google.protobuf.ServiceException {
         return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse) channel.callBlockingMethod(
-          getDescriptor().getMethods().get(56),
+          getDescriptor().getMethods().get(55),
           controller,
           request,
           org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance());
@@ -63096,16 +62249,6 @@ public final class MasterProtos {
     com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_hbase_pb_IsSplitOrMergeEnabledResponse_fieldAccessorTable;
   private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_hbase_pb_NormalizeRequest_descriptor;
   private static
     com.google.protobuf.GeneratedMessage.FieldAccessorTable
@@ -63457,240 +62600,234 @@ public final class MasterProtos {
       "hronous\030\002 \001(\010\"8\n\032SetBalancerRunningRespo" +
       "nse\022\032\n\022prev_balance_value\030\001 \001(\010\"\032\n\030IsBal" +
       "ancerEnabledRequest\",\n\031IsBalancerEnabled" +
-      "Response\022\017\n\007enabled\030\001 \002(\010\"\212\001\n\035SetSplitOr" +
-      "MergeEnabledRequest\022\017\n\007enabled\030\001 \002(\010\022\023\n\013",
-      "synchronous\030\002 \001(\010\0220\n\014switch_types\030\003 \003(\0162" +
-      "\032.hbase.pb.MasterSwitchType\022\021\n\tskip_lock" +
-      "\030\004 \001(\010\"4\n\036SetSplitOrMergeEnabledResponse" +
-      "\022\022\n\nprev_value\030\001 \003(\010\"O\n\034IsSplitOrMergeEn" +
-      "abledRequest\022/\n\013switch_type\030\001 \002(\0162\032.hbas" +
-      "e.pb.MasterSwitchType\"0\n\035IsSplitOrMergeE" +
-      "nabledResponse\022\017\n\007enabled\030\001 \002(\010\"+\n)Relea" +
-      "seSplitOrMergeLockAndRollbackRequest\",\n*" +
-      "ReleaseSplitOrMergeLockAndRollbackRespon" +
-      "se\"\022\n\020NormalizeRequest\"+\n\021NormalizeRespo",
-      "nse\022\026\n\016normalizer_ran\030\001 \002(\010\")\n\033SetNormal" +
-      "izerRunningRequest\022\n\n\002on\030\001 \002(\010\"=\n\034SetNor" +
-      "malizerRunningResponse\022\035\n\025prev_normalize" +
-      "r_value\030\001 \001(\010\"\034\n\032IsNormalizerEnabledRequ" +
-      "est\".\n\033IsNormalizerEnabledResponse\022\017\n\007en" +
-      "abled\030\001 \002(\010\"\027\n\025RunCatalogScanRequest\"-\n\026" +
-      "RunCatalogScanResponse\022\023\n\013scan_result\030\001 " +
-      "\001(\005\"-\n\033EnableCatalogJanitorRequest\022\016\n\006en" +
-      "able\030\001 \002(\010\"2\n\034EnableCatalogJanitorRespon" +
-      "se\022\022\n\nprev_value\030\001 \001(\010\" \n\036IsCatalogJanit",
-      "orEnabledRequest\"0\n\037IsCatalogJanitorEnab" +
-      "ledResponse\022\r\n\005value\030\001 \002(\010\"B\n\017SnapshotRe" +
-      "quest\022/\n\010snapshot\030\001 \002(\0132\035.hbase.pb.Snaps" +
-      "hotDescription\",\n\020SnapshotResponse\022\030\n\020ex" +
-      "pected_timeout\030\001 \002(\003\"\036\n\034GetCompletedSnap" +
-      "shotsRequest\"Q\n\035GetCompletedSnapshotsRes" +
-      "ponse\0220\n\tsnapshots\030\001 \003(\0132\035.hbase.pb.Snap" +
-      "shotDescription\"H\n\025DeleteSnapshotRequest" +
-      "\022/\n\010snapshot\030\001 \002(\0132\035.hbase.pb.SnapshotDe" +
-      "scription\"\030\n\026DeleteSnapshotResponse\"I\n\026R",
-      "estoreSnapshotRequest\022/\n\010snapshot\030\001 \002(\0132" +
-      "\035.hbase.pb.SnapshotDescription\"\031\n\027Restor" +
-      "eSnapshotResponse\"H\n\025IsSnapshotDoneReque" +
-      "st\022/\n\010snapshot\030\001 \001(\0132\035.hbase.pb.Snapshot" +
-      "Description\"^\n\026IsSnapshotDoneResponse\022\023\n" +
-      "\004done\030\001 \001(\010:\005false\022/\n\010snapshot\030\002 \001(\0132\035.h" +
-      "base.pb.SnapshotDescription\"O\n\034IsRestore" +
-      "SnapshotDoneRequest\022/\n\010snapshot\030\001 \001(\0132\035." +
-      "hbase.pb.SnapshotDescription\"4\n\035IsRestor" +
-      "eSnapshotDoneResponse\022\023\n\004done\030\001 \001(\010:\005fal",
-      "se\"F\n\033GetSchemaAlterStatusRequest\022\'\n\ntab" +
-      "le_name\030\001 \002(\0132\023.hbase.pb.TableName\"T\n\034Ge" +
-      "tSchemaAlterStatusResponse\022\035\n\025yet_to_upd" +
-      "ate_regions\030\001 \001(\r\022\025\n\rtotal_regions\030\002 \001(\r" +
-      "\"\213\001\n\032GetTableDescriptorsRequest\022(\n\013table" +
-      "_names\030\001 \003(\0132\023.hbase.pb.TableName\022\r\n\005reg" +
-      "ex\030\002 \001(\t\022!\n\022include_sys_tables\030\003 \001(\010:\005fa" +
-      "lse\022\021\n\tnamespace\030\004 \001(\t\"J\n\033GetTableDescri" +
-      "ptorsResponse\022+\n\014table_schema\030\001 \003(\0132\025.hb" +
-      "ase.pb.TableSchema\"[\n\024GetTableNamesReque",
-      "st\022\r\n\005regex\030\001 \001(\t\022!\n\022include_sys_tables\030" +
-      "\002 \001(\010:\005false\022\021\n\tnamespace\030\003 \001(\t\"A\n\025GetTa" +
-      "bleNamesResponse\022(\n\013table_names\030\001 \003(\0132\023." +
-      "hbase.pb.TableName\"\031\n\027GetClusterStatusRe" +
-      "quest\"K\n\030GetClusterStatusResponse\022/\n\016clu" +
-      "ster_status\030\001 \002(\0132\027.hbase.pb.ClusterStat" +
-      "us\"\030\n\026IsMasterRunningRequest\"4\n\027IsMaster" +
-      "RunningResponse\022\031\n\021is_master_running\030\001 \002" +
-      "(\010\"I\n\024ExecProcedureRequest\0221\n\tprocedure\030" +
-      "\001 \002(\0132\036.hbase.pb.ProcedureDescription\"F\n",
-      "\025ExecProcedureResponse\022\030\n\020expected_timeo" +
-      "ut\030\001 \001(\003\022\023\n\013return_data\030\002 \001(\014\"K\n\026IsProce" +
-      "dureDoneRequest\0221\n\tprocedure\030\001 \001(\0132\036.hba" +
-      "se.pb.ProcedureDescription\"`\n\027IsProcedur" +
-      "eDoneResponse\022\023\n\004done\030\001 \001(\010:\005false\0220\n\010sn" +
-      "apshot\030\002 \001(\0132\036.hbase.pb.ProcedureDescrip" +
-      "tion\",\n\031GetProcedureResultRequest\022\017\n\007pro" +
-      "c_id\030\001 \002(\004\"\371\001\n\032GetProcedureResultRespons" +
-      "e\0229\n\005state\030\001 \002(\0162*.hbase.pb.GetProcedure" +
-      "ResultResponse.State\022\022\n\nstart_time\030\002 \001(\004",
-      "\022\023\n\013last_update\030\003 \001(\004\022\016\n\006result\030\004 \001(\014\0224\n" +
-      "\texception\030\005 \001(\0132!.hbase.pb.ForeignExcep" +
-      "tionMessage\"1\n\005State\022\r\n\tNOT_FOUND\020\000\022\013\n\007R" +
-      "UNNING\020\001\022\014\n\010FINISHED\020\002\"M\n\025AbortProcedure" +
-      "Request\022\017\n\007proc_id\030\001 \002(\004\022#\n\025mayInterrupt" +
-      "IfRunning\030\002 \001(\010:\004true\"6\n\026AbortProcedureR" +
-      "esponse\022\034\n\024is_procedure_aborted\030\001 \002(\010\"\027\n" +
-      "\025ListProceduresRequest\"@\n\026ListProcedures" +
-      "Response\022&\n\tprocedure\030\001 \003(\0132\023.hbase.pb.P" +
-      "rocedure\"\315\001\n\017SetQuotaRequest\022\021\n\tuser_nam",
-      "e\030\001 \001(\t\022\022\n\nuser_group\030\002 \001(\t\022\021\n\tnamespace" +
-      "\030\003 \001(\t\022\'\n\ntable_name\030\004 \001(\0132\023.hbase.pb.Ta" +
-      "bleName\022\022\n\nremove_all\030\005 \001(\010\022\026\n\016bypass_gl" +
-      "obals\030\006 \001(\010\022+\n\010throttle\030\007 \001(\0132\031.hbase.pb" +
-      ".ThrottleRequest\"\022\n\020SetQuotaResponse\"J\n\037" +
-      "MajorCompactionTimestampRequest\022\'\n\ntable" +
-      "_name\030\001 \002(\0132\023.hbase.pb.TableName\"U\n(Majo" +
-      "rCompactionTimestampForRegionRequest\022)\n\006" +
-      "region\030\001 \002(\0132\031.hbase.pb.RegionSpecifier\"" +
-      "@\n MajorCompactionTimestampResponse\022\034\n\024c",
-      "ompaction_timestamp\030\001 \002(\003\"\035\n\033SecurityCap" +
-      "abilitiesRequest\"\354\001\n\034SecurityCapabilitie" +
-      "sResponse\022G\n\014capabilities\030\001 \003(\01621.hbase." +
-      "pb.SecurityCapabilitiesResponse.Capabili" +
-      "ty\"\202\001\n\nCapability\022\031\n\025SIMPLE_AUTHENTICATI" +
-      "ON\020\000\022\031\n\025SECURE_AUTHENTICATION\020\001\022\021\n\rAUTHO" +
-      "RIZATION\020\002\022\026\n\022CELL_AUTHORIZATION\020\003\022\023\n\017CE" +
-      "LL_VISIBILITY\020\004*(\n\020MasterSwitchType\022\t\n\005S" +
-      "PLIT\020\000\022\t\n\005MERGE\020\0012\223)\n\rMasterService\022e\n\024G" +
-      "etSchemaAlterStatus\022%.hbase.pb.GetSchema",
-      "AlterStatusRequest\032&.hbase.pb.GetSchemaA" +
-      "lterStatusResponse\022b\n\023GetTableDescriptor" +
-      "s\022$.hbase.pb.GetTableDescriptorsRequest\032" +
-      "%.hbase.pb.GetTableDescriptorsResponse\022P" +
-      "\n\rGetTableNames\022\036.hbase.pb.GetTableNames" +
-      "Request\032\037.hbase.pb.GetTableNamesResponse" +
-      "\022Y\n\020GetClusterStatus\022!.hbase.pb.GetClust" +
-      "erStatusRequest\032\".hbase.pb.GetClusterSta" +
-      "tusResponse\022V\n\017IsMasterRunning\022 .hbase.p" +
-      "b.IsMasterRunningRequest\032!.hbase.pb.IsMa",
-      "sterRunningResponse\022D\n\tAddColumn\022\032.hbase" +
-      ".pb.AddColumnRequest\032\033.hbase.pb.AddColum" +
-      "nResponse\022M\n\014DeleteColumn\022\035.hbase.pb.Del" +
-      "eteColumnRequest\032\036.hbase.pb.DeleteColumn" +
-      "Response\022M\n\014ModifyColumn\022\035.hbase.pb.Modi" +
-      "fyColumnRequest\032\036.hbase.pb.ModifyColumnR" +
-      "esponse\022G\n\nMoveRegion\022\033.hbase.pb.MoveReg" +
-      "ionRequest\032\034.hbase.pb.MoveRegionResponse" +
-      "\022k\n\026DispatchMergingRegions\022\'.hbase.pb.Di" +
-      "spatchMergingRegionsRequest\032(.hbase.pb.D",
-      "ispatchMergingRegionsResponse\022M\n\014AssignR" +
-      "egion\022\035.hbase.pb.AssignRegionRequest\032\036.h" +
-      "base.pb.AssignRegionResponse\022S\n\016Unassign" +
-      "Region\022\037.hbase.pb.UnassignRegionRequest\032" +
-      " .hbase.pb.UnassignRegionResponse\022P\n\rOff" +
-      "lineRegion\022\036.hbase.pb.OfflineRegionReque" +
-      "st\032\037.hbase.pb.OfflineRegionResponse\022J\n\013D" +
-      "eleteTable\022\034.hbase.pb.DeleteTableRequest" +
-      "\032\035.hbase.pb.DeleteTableResponse\022P\n\rtrunc" +
-      "ateTable\022\036.hbase.pb.TruncateTableRequest",
-      "\032\037.hbase.pb.TruncateTableResponse\022J\n\013Ena" +
-      "bleTable\022\034.hbase.pb.EnableTableRequest\032\035" +
-      ".hbase.pb.EnableTableResponse\022M\n\014Disable" +
-      "Table\022\035.hbase.pb.DisableTableRequest\032\036.h" +
-      "base.pb.DisableTableResponse\022J\n\013ModifyTa" +
-      "ble\022\034.hbase.pb.ModifyTableRequest\032\035.hbas" +
-      "e.pb.ModifyTableResponse\022J\n\013CreateTable\022" +
-      "\034.hbase.pb.CreateTableRequest\032\035.hbase.pb" +
-      ".CreateTableResponse\022A\n\010Shutdown\022\031.hbase" +
-      ".pb.ShutdownRequest\032\032.hbase.pb.ShutdownR",
-      "esponse\022G\n\nStopMaster\022\033.hbase.pb.StopMas" +
-      "terRequest\032\034.hbase.pb.StopMasterResponse" +
-      "\022>\n\007Balance\022\030.hbase.pb.BalanceRequest\032\031." +
-      "hbase.pb.BalanceResponse\022_\n\022SetBalancerR" +
-      "unning\022#.hbase.pb.SetBalancerRunningRequ" +
-      "est\032$.hbase.pb.SetBalancerRunningRespons" +
-      "e\022\\\n\021IsBalancerEnabled\022\".hbase.pb.IsBala" +
-      "ncerEnabledRequest\032#.hbase.pb.IsBalancer" +
-      "EnabledResponse\022k\n\026SetSplitOrMergeEnable" +
-      "d\022\'.hbase.pb.SetSplitOrMergeEnabledReque",
-      "st\032(.hbase.pb.SetSplitOrMergeEnabledResp" +
-      "onse\022h\n\025IsSplitOrMergeEnabled\022&.hbase.pb" +
-      ".IsSplitOrMergeEnabledRequest\032\'.hbase.pb" +
-      ".IsSplitOrMergeEnabledResponse\022\217\001\n\"Relea" +
-      "seSplitOrMergeLockAndRollback\0223.hbase.pb" +
-      ".ReleaseSplitOrMergeLockAndRollbackReque" +
-      "st\0324.hbase.pb.ReleaseSplitOrMergeLockAnd" +
-      "RollbackResponse\022D\n\tNormalize\022\032.hbase.pb" +
-      ".NormalizeRequest\032\033.hbase.pb.NormalizeRe" +
-      "sponse\022e\n\024SetNormalizerRunning\022%.hbase.p",
-      "b.SetNormalizerRunningRequest\032&.hbase.pb" +
-      ".SetNormalizerRunningResponse\022b\n\023IsNorma" +
-      "lizerEnabled\022$.hbase.pb.IsNormalizerEnab" +
-      "ledRequest\032%.hbase.pb.IsNormalizerEnable" +
-      "dResponse\022S\n\016RunCatalogScan\022\037.hbase.pb.R" +
-      "unCatalogScanRequest\032 .hbase.pb.RunCatal" +
-      "ogScanResponse\022e\n\024EnableCatalogJanitor\022%" +
-      ".hbase.pb.EnableCatalogJanitorRequest\032&." +
-      "hbase.pb.EnableCatalogJanitorResponse\022n\n" +
-      "\027IsCatalogJanitorEnabled\022(.hbase.pb.IsCa",
-      "talogJanitorEnabledRequest\032).hbase.pb.Is" +
-      "CatalogJanitorEnabledResponse\022^\n\021ExecMas" +
-      "terService\022#.hbase.pb.CoprocessorService" +
-      "Request\032$.hbase.pb.CoprocessorServiceRes" +
-      "ponse\022A\n\010Snapshot\022\031.hbase.pb.SnapshotReq" +
-      "uest\032\032.hbase.pb.SnapshotResponse\022h\n\025GetC" +
-      "ompletedSnapshots\022&.hbase.pb.GetComplete" +
-      "dSnapshotsRequest\032\'.hbase.pb.GetComplete" +
-      "dSnapshotsResponse\022S\n\016DeleteSnapshot\022\037.h" +
-      "base.pb.DeleteSnapshotRequest\032 .hbase.pb",
-      ".DeleteSnapshotResponse\022S\n\016IsSnapshotDon" +
-      "e\022\037.hbase.pb.IsSnapshotDoneRequest\032 .hba" +
-      "se.pb.IsSnapshotDoneResponse\022V\n\017RestoreS" +
-      "napshot\022 .hbase.pb.RestoreSnapshotReques" +
-      "t\032!.hbase.pb.RestoreSnapshotResponse\022h\n\025" +
-      "IsRestoreSnapshotDone\022&.hbase.pb.IsResto" +
-      "reSnapshotDoneRequest\032\'.hbase.pb.IsResto" +
-      "reSnapshotDoneResponse\022P\n\rExecProcedure\022" +
-      "\036.hbase.pb.ExecProcedureRequest\032\037.hbase." +
-      "pb.ExecProcedureResponse\022W\n\024ExecProcedur",
-      "eWithRet\022\036.hbase.pb.ExecProcedureRequest" +
-      "\032\037.hbase.pb.ExecProcedureResponse\022V\n\017IsP" +
-      "rocedureDone\022 .hbase.pb.IsProcedureDoneR" +
-      "equest\032!.hbase.pb.IsProcedureDoneRespons" +
-      "e\022V\n\017ModifyNamespace\022 .hbase.pb.ModifyNa" +
-      "mespaceRequest\032!.hbase.pb.ModifyNamespac" +
-      "eResponse\022V\n\017CreateNamespace\022 .hbase.pb." +
-      "CreateNamespaceRequest\032!.hbase.pb.Create" +
-      "NamespaceResponse\022V\n\017DeleteNamespace\022 .h" +
-      "base.pb.DeleteNamespaceRequest\032!.hbase.p",
-      "b.DeleteNamespaceResponse\022k\n\026GetNamespac" +
-      "eDescriptor\022\'.hbase.pb.GetNamespaceDescr" +
-      "iptorRequest\032(.hbase.pb.GetNamespaceDesc" +
-      "riptorResponse\022q\n\030ListNamespaceDescripto" +
-      "rs\022).hbase.pb.ListNamespaceDescriptorsRe" +
-      "quest\032*.hbase.pb.ListNamespaceDescriptor" +
-      "sResponse\022\206\001\n\037ListTableDescriptorsByName" +
-      "space\0220.hbase.pb.ListTableDescriptorsByN" +
-      "amespaceRequest\0321.hbase.pb.ListTableDesc" +
-      "riptorsByNamespaceResponse\022t\n\031ListTableN",
-      "amesByNamespace\022*.hbase.pb.ListTableName" +
-      "sByNamespaceRequest\032+.hbase.pb.ListTable" +
-      "NamesByNamespaceResponse\022A\n\010SetQuota\022\031.h" +
-      "base.pb.SetQuotaRequest\032\032.hbase.pb.SetQu" +
-      "otaResponse\022x\n\037getLastMajorCompactionTim" +
-      "estamp\022).hbase.pb.MajorCompactionTimesta" +
-      "mpRequest\032*.hbase.pb.MajorCompactionTime" +
-      "stampResponse\022\212\001\n(getLastMajorCompaction" +
-      "TimestampForRegion\0222.hbase.pb.MajorCompa" +
-      "ctionTimestampForRegionRequest\032*.hbase.p",
-      "b.MajorCompactionTimestampResponse\022_\n\022ge" +
-      "tProcedureResult\022#.hbase.pb.GetProcedure" +
-      "ResultRequest\032$.hbase.pb.GetProcedureRes" +
-      "ultResponse\022h\n\027getSecurityCapabilities\022%" +
-      ".hbase.pb.SecurityCapabilitiesRequest\032&." +
-      "hbase.pb.SecurityCapabilitiesResponse\022S\n" +
-      "\016AbortProcedure\022\037.hbase.pb.AbortProcedur" +
-      "eRequest\032 .hbase.pb.AbortProcedureRespon" +
-      "se\022S\n\016ListProcedures\022\037.hbase.pb.ListProc" +
-      "eduresRequest\032 .hbase.pb.ListProceduresR",
-      "esponseBB\n*org.apache.hadoop.hbase.proto" +
-      "buf.generatedB\014MasterProtosH\001\210\001\001\240\001\001"
+      "Response\022\017\n\007enabled\030\001 \002(\010\"w\n\035SetSplitOrM" +
+      "ergeEnabledRequest\022\017\n\007enabled\030\001 \002(\010\022\023\n\013s",
+      "ynchronous\030\002 \001(\010\0220\n\014switch_types\030\003 \003(\0162\032" +
+      ".hbase.pb.MasterSwitchType\"4\n\036SetSplitOr" +
+      "MergeEnabledResponse\022\022\n\nprev_value\030\001 \003(\010" +
+      "\"O\n\034IsSplitOrMergeEnabledRequest\022/\n\013swit" +
+      "ch_type\030\001 \002(\0162\032.hbase.pb.MasterSwitchTyp" +
+      "e\"0\n\035IsSplitOrMergeEnabledResponse\022\017\n\007en" +
+      "abled\030\001 \002(\010\"\022\n\020NormalizeRequest\"+\n\021Norma" +
+      "lizeResponse\022\026\n\016normalizer_ran\030\001 \002(\010\")\n\033" +
+      "SetNormalizerRunningRequest\022\n\n\002on\030\001 \002(\010\"" +
+      "=\n\034SetNormalizerRunningResponse\022\035\n\025prev_",
+      "normalizer_value\030\001 \001(\010\"\034\n\032IsNormalizerEn" +
+      "abledRequest\".\n\033IsNormalizerEnabledRespo" +
+      "nse\022\017\n\007enabled\030\001 \002(\010\"\027\n\025RunCatalogScanRe" +
+      "quest\"-\n\026RunCatalogScanResponse\022\023\n\013scan_" +
+      "result\030\001 \001(\005\"-\n\033EnableCatalogJanitorRequ" +
+      "est\022\016\n\006enable\030\001 \002(\010\"2\n\034EnableCatalogJani" +
+      "torResponse\022\022\n\nprev_value\030\001 \001(\010\" \n\036IsCat" +
+      "alogJanitorEnabledRequest\"0\n\037IsCatalogJa" +
+      "nitorEnabledResponse\022\r\n\005value\030\001 \002(\010\"B\n\017S" +
+      "napshotRequest\022/\n\010snapshot\030\001 \002(\0132\035.hbase",
+      ".pb.SnapshotDescription\",\n\020SnapshotRespo" +
+      "nse\022\030\n\020expected_timeout\030\001 \002(\003\"\036\n\034GetComp" +
+      "letedSnapshotsRequest\"Q\n\035GetCompletedSna" +
+      "pshotsResponse\0220\n\tsnapshots\030\001 \003(\0132\035.hbas" +
+      "e.pb.SnapshotDescription\"H\n\025DeleteSnapsh" +
+      "otRequest\022/\n\010snapshot\030\001 \002(\0132\035.hbase.pb.S" +
+      "napshotDescription\"\030\n\026DeleteSnapshotResp" +
+      "onse\"I\n\026RestoreSnapshotRequest\022/\n\010snapsh" +
+      "ot\030\001 \002(\0132\035.hbase.pb.SnapshotDescription\"" +
+      "\031\n\027RestoreSnapshotResponse\"H\n\025IsSnapshot",
+      "DoneRequest\022/\n\010snapshot\030\001 \001(\0132\035.hbase.pb" +
+      ".SnapshotDescription\"^\n\026IsSnapshotDoneRe" +
+      "sponse\022\023\n\004done\030\001 \001(\010:\005false\022/\n\010snapshot\030" +
+      "\002 \001(\0132\035.hbase.pb.SnapshotDescription\"O\n\034" +
+      "IsRestoreSnapshotDoneRequest\022/\n\010snapshot" +
+      "\030\001 \001(\0132\035.hbase.pb.SnapshotDescription\"4\n" +
+      "\035IsRestoreSnapshotDoneResponse\022\023\n\004done\030\001" +
+      " \001(\010:\005false\"F\n\033GetSchemaAlterStatusReque" +
+      "st\022\'\n\ntable_name\030\001 \002(\0132\023.hbase.pb.TableN" +
+      "ame\"T\n\034GetSchemaAlterStatusResponse\022\035\n\025y",
+      "et_to_update_regions\030\001 \001(\r\022\025\n\rtotal_regi" +
+      "ons\030\002 \001(\r\"\213\001\n\032GetTableDescriptorsRequest" +
+      "\022(\n\013table_names\030\001 \003(\0132\023.hbase.pb.TableNa" +
+      "me\022\r\n\005regex\030\002 \001(\t\022!\n\022include_sys_tables\030" +
+      "\003 \001(\010:\005false\022\021\n\tnamespace\030\004 \001(\t\"J\n\033GetTa" +
+      "bleDescriptorsResponse\022+\n\014table_schema\030\001" +
+      " \003(\0132\025.hbase.pb.TableSchema\"[\n\024GetTableN" +
+      "amesRequest\022\r\n\005regex\030\001 \001(\t\022!\n\022include_sy" +
+      "s_tables\030\002 \001(\010:\005false\022\021\n\tnamespace\030\003 \001(\t" +
+      "\"A\n\025GetTableNamesResponse\022(\n\013table_names",
+      "\030\001 \003(\0132\023.hbase.pb.TableName\"\031\n\027GetCluste" +
+      "rStatusRequest\"K\n\030GetClusterStatusRespon" +
+      "se\022/\n\016cluster_status\030\001 \002(\0132\027.hbase.pb.Cl" +
+      "usterStatus\"\030\n\026IsMasterRunningRequest\"4\n" +
+      "\027IsMasterRunningResponse\022\031\n\021is_master_ru" +
+      "nning\030\001 \002(\010\"I\n\024ExecProcedureRequest\0221\n\tp" +
+      "rocedure\030\001 \002(\0132\036.hbase.pb.ProcedureDescr" +
+      "iption\"F\n\025ExecProcedureResponse\022\030\n\020expec" +
+      "ted_timeout\030\001 \001(\003\022\023\n\013return_data\030\002 \001(\014\"K" +
+      "\n\026IsProcedureDoneRequest\0221\n\tprocedure\030\001 ",
+      "\001(\0132\036.hbase.pb.ProcedureDescription\"`\n\027I" +
+      "sProcedureDoneResponse\022\023\n\004done\030\001 \001(\010:\005fa" +
+      "lse\0220\n\010snapshot\030\002 \001(\0132\036.hbase.pb.Procedu" +
+      "reDescription\",\n\031GetProcedureResultReque" +
+      "st\022\017\n\007proc_id\030\001 \002(\004\"\371\001\n\032GetProcedureResu" +
+      "ltResponse\0229\n\005state\030\001 \002(\0162*.hbase.pb.Get" +
+      "ProcedureResultResponse.State\022\022\n\nstart_t" +
+      "ime\030\002 \001(\004\022\023\n\013last_update\030\003 \001(\004\022\016\n\006result" +
+      "\030\004 \001(\014\0224\n\texception\030\005 \001(\0132!.hbase.pb.For" +
+      "eignExceptionMessage\"1\n\005State\022\r\n\tNOT_FOU",
+      "ND\020\000\022\013\n\007RUNNING\020\001\022\014\n\010FINISHED\020\002\"M\n\025Abort" +
+      "ProcedureRequest\022\017\n\007proc_id\030\001 \002(\004\022#\n\025may" +
+      "InterruptIfRunning\030\002 \001(\010:\004true\"6\n\026AbortP" +
+      "rocedureResponse\022\034\n\024is_procedure_aborted" +
+      "\030\001 \002(\010\"\027\n\025ListProceduresRequest\"@\n\026ListP" +
+      "roceduresResponse\022&\n\tprocedure\030\001 \003(\0132\023.h" +
+      "base.pb.Procedure\"\315\001\n\017SetQuotaRequest\022\021\n" +
+      "\tuser_name\030\001 \001(\t\022\022\n\nuser_group\030\002 \001(\t\022\021\n\t" +
+      "namespace\030\003 \001(\t\022\'\n\ntable_name\030\004 \001(\0132\023.hb" +
+      "ase.pb.TableName\022\022\n\nremove_all\030\005 \001(\010\022\026\n\016",
+      "bypass_globals\030\006 \001(\010\022+\n\010throttle\030\007 \001(\0132\031" +
+      ".hbase.pb.ThrottleRequest\"\022\n\020SetQuotaRes" +
+      "ponse\"J\n\037MajorCompactionTimestampRequest" +
+      "\022\'\n\ntable_name\030\001 \002(\0132\023.hbase.pb.TableNam" +
+      "e\"U\n(MajorCompactionTimestampForRegionRe" +
+      "quest\022)\n\006region\030\001 \002(\0132\031.hbase.pb.RegionS" +
+      "pecifier\"@\n MajorCompactionTimestampResp" +
+      "onse\022\034\n\024compaction_timestamp\030\001 \002(\003\"\035\n\033Se" +
+      "curityCapabilitiesRequest\"\354\001\n\034SecurityCa" +
+      "pabilitiesResponse\022G\n\014capabilities\030\001 \003(\016",
+      "21.hbase.pb.SecurityCapabilitiesResponse" +
+      ".Capability\"\202\001\n\nCapability\022\031\n\025SIMPLE_AUT" +
+      "HENTICATION\020\000\022\031\n\025SECURE_AUTHENTICATION\020\001" +
+      "\022\021\n\rAUTHORIZATION\020\002\022\026\n\022CELL_AUTHORIZATIO" +
+      "N\020\003\022\023\n\017CELL_VISIBILITY\020\004*(\n\020MasterSwitch" +
+      "Type\022\t\n\005SPLIT\020\000\022\t\n\005MERGE\020\0012\201(\n\rMasterSer" +
+      "vice\022e\n\024GetSchemaAlterStatus\022%.hbase.pb." +
+      "GetSchemaAlterStatusRequest\032&.hbase.pb.G" +
+      "etSchemaAlterStatusResponse\022b\n\023GetTableD" +
+      "escriptors\022$.hbase.pb.GetTableDescriptor",
+      "sRequest\032%.hbase.pb.GetTableDescriptorsR" +
+      "esponse\022P\n\rGetTableNames\022\036.hbase.pb.GetT" +
+      "ableNamesRequest\032\037.hbase.pb.GetTableName" +
+      "sResponse\022Y\n\020GetClusterStatus\022!.hbase.pb" +
+      ".GetClusterStatusRequest\032\".hbase.pb.GetC" +
+      "lusterStatusResponse\022V\n\017IsMasterRunning\022" +
+      " .hbase.pb.IsMasterRunningRequest\032!.hbas" +
+      "e.pb.IsMasterRunningResponse\022D\n\tAddColum" +
+      "n\022\032.hbase.pb.AddColumnRequest\032\033.hbase.pb" +
+      ".AddColumnResponse\022M\n\014DeleteColumn\022\035.hba",
+      "se.pb.DeleteColumnRequest\032\036.hbase.pb.Del" +
+      "eteColumnResponse\022M\n\014ModifyColumn\022\035.hbas" +
+      "e.pb.ModifyColumnRequest\032\036.hbase.pb.Modi" +
+      "fyColumnResponse\022G\n\nMoveRegion\022\033.hbase.p" +
+      "b.MoveRegionRequest\032\034.hbase.pb.MoveRegio" +
+      "nResponse\022k\n\026DispatchMergingRegions\022\'.hb" +
+      "ase.pb.DispatchMergingRegionsRequest\032(.h" +
+      "base.pb.DispatchMergingRegionsResponse\022M" +
+      "\n\014AssignRegion\022\035.hbase.pb.AssignRegionRe" +
+      "quest\032\036.hbase.pb.AssignRegionResponse\022S\n",
+      "\016UnassignRegion\022\037.hbase.pb.UnassignRegio" +
+      "nRequest\032 .hbase.pb.UnassignRegionRespon" +
+      "se\022P\n\rOfflineRegion\022\036.hbase.pb.OfflineRe" +
+      "gionRequest\032\037.hbase.pb.OfflineRegionResp" +
+      "onse\022J\n\013DeleteTable\022\034.hbase.pb.DeleteTab" +
+      "leRequest\032\035.hbase.pb.DeleteTableResponse" +
+      "\022P\n\rtruncateTable\022\036.hbase.pb.TruncateTab" +
+      "leRequest\032\037.hbase.pb.TruncateTableRespon" +
+      "se\022J\n\013EnableTable\022\034.hbase.pb.EnableTable" +
+      "Request\032\035.hbase.pb.EnableTableResponse\022M",
+      "\n\014DisableTable\022\035.hbase.pb.DisableTableRe" +
+      "quest\032\036.hbase.pb.DisableTableResponse\022J\n" +
+      "\013ModifyTable\022\034.hbase.pb.ModifyTableReque" +
+      "st\032\035.hbase.pb.ModifyTableResponse\022J\n\013Cre" +
+      "ateTable\022\034.hbase.pb.CreateTableRequest\032\035" +
+      ".hbase.pb.CreateTableResponse\022A\n\010Shutdow" +
+      "n\022\031.hbase.pb.ShutdownRequest\032\032.hbase.pb." +
+      "ShutdownResponse\022G\n\nStopMaster\022\033.hbase.p" +
+      "b.StopMasterRequest\032\034.hbase.pb.StopMaste" +
+      "rResponse\022>\n\007Balance\022\030.hbase.pb.BalanceR",
+      "equest\032\031.hbase.pb.BalanceResponse\022_\n\022Set" +
+      "BalancerRunning\022#.hbase.pb.SetBalancerRu" +
+      "nningRequest\032$.hbase.pb.SetBalancerRunni" +
+      "ngResponse\022\\\n\021IsBalancerEnabled\022\".hbase." +
+      "pb.IsBalancerEnabledRequest\032#.hbase.pb.I" +
+      "sBalancerEnabledResponse\022k\n\026SetSplitOrMe" +
+      "rgeEnabled\022\'.hbase.pb.SetSplitOrMergeEna" +
+      "bledRequest\032(.hbase.pb.SetSplitOrMergeEn" +
+      "abledResponse\022h\n\025IsSplitOrMergeEnabled\022&" +
+      ".hbase.pb.IsSplitOrMergeEnabledRequest\032\'",
+      ".hbase.pb.IsSplitOrMergeEnabledResponse\022" +
+      "D\n\tNormalize\022\032.hbase.pb.NormalizeRequest" +
+      "\032\033.hbase.pb.NormalizeResponse\022e\n\024SetNorm" +
+      "alizerRunning\022%.hbase.pb.SetNormalizerRu" +
+      "nningRequest\032&.hbase.pb.SetNormalizerRun" +
+      "ningResponse\022b\n\023IsNormalizerEnabled\022$.hb" +
+      "ase.pb.IsNormalizerEnabledRequest\032%.hbas" +
+      "e.pb.IsNormalizerEnabledResponse\022S\n\016RunC" +
+      "atalogScan\022\037.hbase.pb.RunCatalogScanRequ" +
+      "est\032 .hbase.pb.RunCatalogScanResponse\022e\n",
+      "\024EnableCatalogJanitor\022%.hbase.pb.EnableC" +
+      "atalogJanitorRequest\032&.hbase.pb.EnableCa" +
+      "talogJanitorResponse\022n\n\027IsCatalogJanitor" +
+      "Enabled\022(.hbase.pb.IsCatalogJanitorEnabl" +
+      "edRequest\032).hbase.pb.IsCatalogJanitorEna" +
+      "bledResponse\022^\n\021ExecMasterService\022#.hbas" +
+      "e.pb.CoprocessorServiceRequest\032$.hbase.p" +
+      "b.CoprocessorServiceResponse\022A\n\010Snapshot" +
+      "\022\031.hbase.pb.SnapshotRequest\032\032.hbase.pb.S" +
+      "napshotResponse\022h\n\025GetCompletedSnapshots",
+      "\022&.hbase.pb.GetCompletedSnapshotsRequest" +
+      "\032\'.hbase.pb.GetCompletedSnapshotsRespons" +
+      "e\022S\n\016DeleteSnapshot\022\037.hbase.pb.DeleteSna" +
+      "pshotRequest\032 .hbase.pb.DeleteSnapshotRe" +
+      "sponse\022S\n\016IsSnapshotDone\022\037.hbase.pb.IsSn" +
+      "apshotDoneRequest\032 .hbase.pb.IsSnapshotD" +
+      "oneResponse\022V\n\017RestoreSnapshot\022 .hbase.p" +
+      "b.RestoreSnapshotRequest\032!.hbase.pb.Rest" +
+      "oreSnapshotResponse\022h\n\025IsRestoreSnapshot" +
+      "Done\022&.hbase.pb.IsRestoreSnapshotDoneReq",
+      "uest\032\'.hbase.pb.IsRestoreSnapshotDoneRes" +
+      "ponse\022P\n\rExecProcedure\022\036.hbase.pb.ExecPr" +
+      "ocedureRequest\032\037.hbase.pb.ExecProcedureR" +
+      "esponse\022W\n\024ExecProcedureWithRet\022\036.hbase." +
+      "pb.ExecProcedureRequest\032\037.hbase.pb.ExecP" +
+      "rocedureResponse\022V\n\017IsProcedureDone\022 .hb" +
+      "ase.pb.IsProcedureDoneRequest\032!.hbase.pb" +
+      ".IsProcedureDoneResponse\022V\n\017ModifyNamesp" +
+      "ace\022 .hbase.pb.ModifyNamespaceRequest\032!." +
+      "hbase.pb.ModifyNamespaceResponse\022V\n\017Crea",
+      "teNamespace\022 .hbase.pb.CreateNamespaceRe" +
+      "quest\032!.hbase.pb.CreateNamespaceResponse" +
+      "\022V\n\017DeleteNamespace\022 .hbase.pb.DeleteNam" +
+      "espaceRequest\032!.hbase.pb.DeleteNamespace" +
+      "Response\022k\n\026GetNamespaceDescriptor\022\'.hba" +
+      "se.pb.GetNamespaceDescriptorRequest\032(.hb" +
+      "ase.pb.GetNamespaceDescriptorResponse\022q\n" +
+      "\030ListNamespaceDescriptors\022).hbase.pb.Lis" +
+      "tNamespaceDescriptorsRequest\032*.hbase.pb." +
+      "ListNamespaceDescriptorsResponse\022\206\001\n\037Lis",
+      "tTableDescriptorsByNamespace\0220.hbase.pb." +
+      "ListTableDescriptorsByNamespaceRequest\0321" +
+      ".hbase.pb.ListTableDescriptorsByNamespac" +
+      "eResponse\022t\n\031ListTableNamesByNamespace\022*" +
+      ".hbase.pb.ListTableNamesByNamespaceReque" +
+      "st\032+.hbase.pb.ListTableNamesByNamespaceR" +
+      "esponse\022A\n\010SetQuota\022\031.hbase.pb.SetQuotaR" +
+      "equest\032\032.hbase.pb.SetQuotaResponse\022x\n\037ge" +
+      "tLastMajorCompactionTimestamp\022).hbase.pb" +
+      ".MajorCompactionTimestampRequest\032*.hbase",
+      ".pb.MajorCompactionTimestampResponse\022\212\001\n" +
+      "(getLastMajorCompactionTimestampForRegio" +
+      "n\0222.hbase.pb.MajorCompactionTimestampFor" +
+      "RegionRequest\032*.hbase.pb.MajorCompaction" +
+      "TimestampResponse\022_\n\022getProcedureResult\022" +
+      "#.hbase.pb.GetProcedureResultRequest\032$.h" +
+      "base.pb.GetProcedureResultResponse\022h\n\027ge" +
+      "tSecurityCapabilities\022%.hbase.pb.Securit" +
+      "yCapabilitiesRequest\032&.hbase.pb.Security" +
+      "CapabilitiesResponse\022S\n\016AbortProcedure\022\037",
+      ".hbase.pb.AbortProcedureRequest\032 .hbase." +
+      "pb.AbortProcedureResponse\022S\n\016ListProcedu" +
+      "res\022\037.hbase.pb.ListProceduresRequest\032 .h" +
+      "base.pb.ListProceduresResponseBB\n*org.ap" +
+      "ache.hadoop.hbase.protobuf.generatedB\014Ma" +
+      "sterProtosH\001\210\001\001\240\001\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -64014,7 +63151,7 @@ public final class MasterProtos {
           internal_static_hbase_pb_SetSplitOrMergeEnabledRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SetSplitOrMergeEnabledRequest_descriptor,
-              new java.lang.String[] { "Enabled", "Synchronous", "SwitchTypes", "SkipLock", });
+              new java.lang.String[] { "Enabled", "Synchronous", "SwitchTypes", });
           internal_static_hbase_pb_SetSplitOrMergeEnabledResponse_descriptor =
             getDescriptor().getMessageTypes().get(53);
           internal_static_hbase_pb_SetSplitOrMergeEnabledResponse_fieldAccessorTable = new
@@ -64033,320 +63170,308 @@ public final class MasterProtos {
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsSplitOrMergeEnabledResponse_descriptor,
               new java.lang.String[] { "Enabled", });
-          internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor =
-            getDescriptor().getMessageTypes().get(56);
-          internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackRequest_descriptor,
-              new java.lang.String[] { });
-          internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor =
-            getDescriptor().getMessageTypes().get(57);
-          internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_hbase_pb_ReleaseSplitOrMergeLockAndRollbackResponse_descriptor,
-              new java.lang.String[] { });
           internal_static_hbase_pb_NormalizeRequest_descriptor =
-            getDescriptor().getMessageTypes().get(58);
+            getDescriptor().getMessageTypes().get(56);
           internal_static_hbase_pb_NormalizeRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_NormalizeRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_NormalizeResponse_descriptor =
-            getDescriptor().getMessageTypes().get(59);
+            getDescriptor().getMessageTypes().get(57);
           internal_static_hbase_pb_NormalizeResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_NormalizeResponse_descriptor,
               new java.lang.String[] { "NormalizerRan", });
           internal_static_hbase_pb_SetNormalizerRunningRequest_descriptor =
-            getDescriptor().getMessageTypes().get(60);
+            getDescriptor().getMessageTypes().get(58);
           internal_static_hbase_pb_SetNormalizerRunningRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SetNormalizerRunningRequest_descriptor,
               new java.lang.String[] { "On", });
           internal_static_hbase_pb_SetNormalizerRunningResponse_descriptor =
-            getDescriptor().getMessageTypes().get(61);
+            getDescriptor().getMessageTypes().get(59);
           internal_static_hbase_pb_SetNormalizerRunningResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SetNormalizerRunningResponse_descriptor,
               new java.lang.String[] { "PrevNormalizerValue", });
           internal_static_hbase_pb_IsNormalizerEnabledRequest_descriptor =
-            getDescriptor().getMessageTypes().get(62);
+            getDescriptor().getMessageTypes().get(60);
           internal_static_hbase_pb_IsNormalizerEnabledRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsNormalizerEnabledRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_IsNormalizerEnabledResponse_descriptor =
-            getDescriptor().getMessageTypes().get(63);
+            getDescriptor().getMessageTypes().get(61);
           internal_static_hbase_pb_IsNormalizerEnabledResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsNormalizerEnabledResponse_descriptor,
               new java.lang.String[] { "Enabled", });
           internal_static_hbase_pb_RunCatalogScanRequest_descriptor =
-            getDescriptor().getMessageTypes().get(64);
+            getDescriptor().getMessageTypes().get(62);
           internal_static_hbase_pb_RunCatalogScanRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_RunCatalogScanRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_RunCatalogScanResponse_descriptor =
-            getDescriptor().getMessageTypes().get(65);
+            getDescriptor().getMessageTypes().get(63);
           internal_static_hbase_pb_RunCatalogScanResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_RunCatalogScanResponse_descriptor,
               new java.lang.String[] { "ScanResult", });
           internal_static_hbase_pb_EnableCatalogJanitorRequest_descriptor =
-            getDescriptor().getMessageTypes().get(66);
+            getDescriptor().getMessageTypes().get(64);
           internal_static_hbase_pb_EnableCatalogJanitorRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_EnableCatalogJanitorRequest_descriptor,
               new java.lang.String[] { "Enable", });
           internal_static_hbase_pb_EnableCatalogJanitorResponse_descriptor =
-            getDescriptor().getMessageTypes().get(67);
+            getDescriptor().getMessageTypes().get(65);
           internal_static_hbase_pb_EnableCatalogJanitorResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_EnableCatalogJanitorResponse_descriptor,
               new java.lang.String[] { "PrevValue", });
           internal_static_hbase_pb_IsCatalogJanitorEnabledRequest_descriptor =
-            getDescriptor().getMessageTypes().get(68);
+            getDescriptor().getMessageTypes().get(66);
           internal_static_hbase_pb_IsCatalogJanitorEnabledRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsCatalogJanitorEnabledRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_IsCatalogJanitorEnabledResponse_descriptor =
-            getDescriptor().getMessageTypes().get(69);
+            getDescriptor().getMessageTypes().get(67);
           internal_static_hbase_pb_IsCatalogJanitorEnabledResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsCatalogJanitorEnabledResponse_descriptor,
               new java.lang.String[] { "Value", });
           internal_static_hbase_pb_SnapshotRequest_descriptor =
-            getDescriptor().getMessageTypes().get(70);
+            getDescriptor().getMessageTypes().get(68);
           internal_static_hbase_pb_SnapshotRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SnapshotRequest_descriptor,
               new java.lang.String[] { "Snapshot", });
           internal_static_hbase_pb_SnapshotResponse_descriptor =
-            getDescriptor().getMessageTypes().get(71);
+            getDescriptor().getMessageTypes().get(69);
           internal_static_hbase_pb_SnapshotResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SnapshotResponse_descriptor,
               new java.lang.String[] { "ExpectedTimeout", });
           internal_static_hbase_pb_GetCompletedSnapshotsRequest_descriptor =
-            getDescriptor().getMessageTypes().get(72);
+            getDescriptor().getMessageTypes().get(70);
           internal_static_hbase_pb_GetCompletedSnapshotsRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetCompletedSnapshotsRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_GetCompletedSnapshotsResponse_descriptor =
-            getDescriptor().getMessageTypes().get(73);
+            getDescriptor().getMessageTypes().get(71);
           internal_static_hbase_pb_GetCompletedSnapshotsResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetCompletedSnapshotsResponse_descriptor,
               new java.lang.String[] { "Snapshots", });
           internal_static_hbase_pb_DeleteSnapshotRequest_descriptor =
-            getDescriptor().getMessageTypes().get(74);
+            getDescriptor().getMessageTypes().get(72);
           internal_static_hbase_pb_DeleteSnapshotRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_DeleteSnapshotRequest_descriptor,
               new java.lang.String[] { "Snapshot", });
           internal_static_hbase_pb_DeleteSnapshotResponse_descriptor =
-            getDescriptor().getMessageTypes().get(75);
+            getDescriptor().getMessageTypes().get(73);
           internal_static_hbase_pb_DeleteSnapshotResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_DeleteSnapshotResponse_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_RestoreSnapshotRequest_descriptor =
-            getDescriptor().getMessageTypes().get(76);
+            getDescriptor().getMessageTypes().get(74);
           internal_static_hbase_pb_RestoreSnapshotRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_RestoreSnapshotRequest_descriptor,
               new java.lang.String[] { "Snapshot", });
           internal_static_hbase_pb_RestoreSnapshotResponse_descriptor =
-            getDescriptor().getMessageTypes().get(77);
+            getDescriptor().getMessageTypes().get(75);
           internal_static_hbase_pb_RestoreSnapshotResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_RestoreSnapshotResponse_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_IsSnapshotDoneRequest_descriptor =
-            getDescriptor().getMessageTypes().get(78);
+            getDescriptor().getMessageTypes().get(76);
           internal_static_hbase_pb_IsSnapshotDoneRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsSnapshotDoneRequest_descriptor,
               new java.lang.String[] { "Snapshot", });
           internal_static_hbase_pb_IsSnapshotDoneResponse_descriptor =
-            getDescriptor().getMessageTypes().get(79);
+            getDescriptor().getMessageTypes().get(77);
           internal_static_hbase_pb_IsSnapshotDoneResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsSnapshotDoneResponse_descriptor,
               new java.lang.String[] { "Done", "Snapshot", });
           internal_static_hbase_pb_IsRestoreSnapshotDoneRequest_descriptor =
-            getDescriptor().getMessageTypes().get(80);
+            getDescriptor().getMessageTypes().get(78);
           internal_static_hbase_pb_IsRestoreSnapshotDoneRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsRestoreSnapshotDoneRequest_descriptor,
               new java.lang.String[] { "Snapshot", });
           internal_static_hbase_pb_IsRestoreSnapshotDoneResponse_descriptor =
-            getDescriptor().getMessageTypes().get(81);
+            getDescriptor().getMessageTypes().get(79);
           internal_static_hbase_pb_IsRestoreSnapshotDoneResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsRestoreSnapshotDoneResponse_descriptor,
               new java.lang.String[] { "Done", });
           internal_static_hbase_pb_GetSchemaAlterStatusRequest_descriptor =
-            getDescriptor().getMessageTypes().get(82);
+            getDescriptor().getMessageTypes().get(80);
           internal_static_hbase_pb_GetSchemaAlterStatusRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetSchemaAlterStatusRequest_descriptor,
               new java.lang.String[] { "TableName", });
           internal_static_hbase_pb_GetSchemaAlterStatusResponse_descriptor =
-            getDescriptor().getMessageTypes().get(83);
+            getDescriptor().getMessageTypes().get(81);
           internal_static_hbase_pb_GetSchemaAlterStatusResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetSchemaAlterStatusResponse_descriptor,
               new java.lang.String[] { "YetToUpdateRegions", "TotalRegions", });
           internal_static_hbase_pb_GetTableDescriptorsRequest_descriptor =
-            getDescriptor().getMessageTypes().get(84);
+            getDescriptor().getMessageTypes().get(82);
           internal_static_hbase_pb_GetTableDescriptorsRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetTableDescriptorsRequest_descriptor,
               new java.lang.String[] { "TableNames", "Regex", "IncludeSysTables", "Namespace", });
           internal_static_hbase_pb_GetTableDescriptorsResponse_descriptor =
-            getDescriptor().getMessageTypes().get(85);
+            getDescriptor().getMessageTypes().get(83);
           internal_static_hbase_pb_GetTableDescriptorsResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetTableDescriptorsResponse_descriptor,
               new java.lang.String[] { "TableSchema", });
           internal_static_hbase_pb_GetTableNamesRequest_descriptor =
-            getDescriptor().getMessageTypes().get(86);
+            getDescriptor().getMessageTypes().get(84);
           internal_static_hbase_pb_GetTableNamesRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetTableNamesRequest_descriptor,
               new java.lang.String[] { "Regex", "IncludeSysTables", "Namespace", });
           internal_static_hbase_pb_GetTableNamesResponse_descriptor =
-            getDescriptor().getMessageTypes().get(87);
+            getDescriptor().getMessageTypes().get(85);
           internal_static_hbase_pb_GetTableNamesResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetTableNamesResponse_descriptor,
               new java.lang.String[] { "TableNames", });
           internal_static_hbase_pb_GetClusterStatusRequest_descriptor =
-            getDescriptor().getMessageTypes().get(88);
+            getDescriptor().getMessageTypes().get(86);
           internal_static_hbase_pb_GetClusterStatusRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetClusterStatusRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_GetClusterStatusResponse_descriptor =
-            getDescriptor().getMessageTypes().get(89);
+            getDescriptor().getMessageTypes().get(87);
           internal_static_hbase_pb_GetClusterStatusResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetClusterStatusResponse_descriptor,
               new java.lang.String[] { "ClusterStatus", });
           internal_static_hbase_pb_IsMasterRunningRequest_descriptor =
-            getDescriptor().getMessageTypes().get(90);
+            getDescriptor().getMessageTypes().get(88);
           internal_static_hbase_pb_IsMasterRunningRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsMasterRunningRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_IsMasterRunningResponse_descriptor =
-            getDescriptor().getMessageTypes().get(91);
+            getDescriptor().getMessageTypes().get(89);
           internal_static_hbase_pb_IsMasterRunningResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsMasterRunningResponse_descriptor,
               new java.lang.String[] { "IsMasterRunning", });
           internal_static_hbase_pb_ExecProcedureRequest_descriptor =
-            getDescriptor().getMessageTypes().get(92);
+            getDescriptor().getMessageTypes().get(90);
           internal_static_hbase_pb_ExecProcedureRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_ExecProcedureRequest_descriptor,
               new java.lang.String[] { "Procedure", });
           internal_static_hbase_pb_ExecProcedureResponse_descriptor =
-            getDescriptor().getMessageTypes().get(93);
+            getDescriptor().getMessageTypes().get(91);
           internal_static_hbase_pb_ExecProcedureResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_ExecProcedureResponse_descriptor,
               new java.lang.String[] { "ExpectedTimeout", "ReturnData", });
           internal_static_hbase_pb_IsProcedureDoneRequest_descriptor =
-            getDescriptor().getMessageTypes().get(94);
+            getDescriptor().getMessageTypes().get(92);
           internal_static_hbase_pb_IsProcedureDoneRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsProcedureDoneRequest_descriptor,
               new java.lang.String[] { "Procedure", });
           internal_static_hbase_pb_IsProcedureDoneResponse_descriptor =
-            getDescriptor().getMessageTypes().get(95);
+            getDescriptor().getMessageTypes().get(93);
           internal_static_hbase_pb_IsProcedureDoneResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_IsProcedureDoneResponse_descriptor,
               new java.lang.String[] { "Done", "Snapshot", });
           internal_static_hbase_pb_GetProcedureResultRequest_descriptor =
-            getDescriptor().getMessageTypes().get(96);
+            getDescriptor().getMessageTypes().get(94);
           internal_static_hbase_pb_GetProcedureResultRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetProcedureResultRequest_descriptor,
               new java.lang.String[] { "ProcId", });
           internal_static_hbase_pb_GetProcedureResultResponse_descriptor =
-            getDescriptor().getMessageTypes().get(97);
+            getDescriptor().getMessageTypes().get(95);
           internal_static_hbase_pb_GetProcedureResultResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_GetProcedureResultResponse_descriptor,
               new java.lang.String[] { "State", "StartTime", "LastUpdate", "Result", "Exception", });
           internal_static_hbase_pb_AbortProcedureRequest_descriptor =
-            getDescriptor().getMessageTypes().get(98);
+            getDescriptor().getMessageTypes().get(96);
           internal_static_hbase_pb_AbortProcedureRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_AbortProcedureRequest_descriptor,
               new java.lang.String[] { "ProcId", "MayInterruptIfRunning", });
           internal_static_hbase_pb_AbortProcedureResponse_descriptor =
-            getDescriptor().getMessageTypes().get(99);
+            getDescriptor().getMessageTypes().get(97);
           internal_static_hbase_pb_AbortProcedureResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_AbortProcedureResponse_descriptor,
               new java.lang.String[] { "IsProcedureAborted", });
           internal_static_hbase_pb_ListProceduresRequest_descriptor =
-            getDescriptor().getMessageTypes().get(100);
+            getDescriptor().getMessageTypes().get(98);
           internal_static_hbase_pb_ListProceduresRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_ListProceduresRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_ListProceduresResponse_descriptor =
-            getDescriptor().getMessageTypes().get(101);
+            getDescriptor().getMessageTypes().get(99);
           internal_static_hbase_pb_ListProceduresResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_ListProceduresResponse_descriptor,
               new java.lang.String[] { "Procedure", });
           internal_static_hbase_pb_SetQuotaRequest_descriptor =
-            getDescriptor().getMessageTypes().get(102);
+            getDescriptor().getMessageTypes().get(100);
           internal_static_hbase_pb_SetQuotaRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SetQuotaRequest_descriptor,
               new java.lang.String[] { "UserName", "UserGroup", "Namespace", "TableName", "RemoveAll", "BypassGlobals", "Throttle", });
           internal_static_hbase_pb_SetQuotaResponse_descriptor =
-            getDescriptor().getMessageTypes().get(103);
+            getDescriptor().getMessageTypes().get(101);
           internal_static_hbase_pb_SetQuotaResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SetQuotaResponse_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_MajorCompactionTimestampRequest_descriptor =
-            getDescriptor().getMessageTypes().get(104);
+            getDescriptor().getMessageTypes().get(102);
           internal_static_hbase_pb_MajorCompactionTimestampRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_MajorCompactionTimestampRequest_descriptor,
               new java.lang.String[] { "TableName", });
           internal_static_hbase_pb_MajorCompactionTimestampForRegionRequest_descriptor =
-            getDescriptor().getMessageTypes().get(105);
+            getDescriptor().getMessageTypes().get(103);
           internal_static_hbase_pb_MajorCompactionTimestampForRegionRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_MajorCompactionTimestampForRegionRequest_descriptor,
               new java.lang.String[] { "Region", });
           internal_static_hbase_pb_MajorCompactionTimestampResponse_descriptor =
-            getDescriptor().getMessageTypes().get(106);
+            getDescriptor().getMessageTypes().get(104);
           internal_static_hbase_pb_MajorCompactionTimestampResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_MajorCompactionTimestampResponse_descriptor,
               new java.lang.String[] { "CompactionTimestamp", });
           internal_static_hbase_pb_SecurityCapabilitiesRequest_descriptor =
-            getDescriptor().getMessageTypes().get(107);
+            getDescriptor().getMessageTypes().get(105);
           internal_static_hbase_pb_SecurityCapabilitiesRequest_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SecurityCapabilitiesRequest_descriptor,
               new java.lang.String[] { });
           internal_static_hbase_pb_SecurityCapabilitiesResponse_descriptor =
-            getDescriptor().getMessageTypes().get(108);
+            getDescriptor().getMessageTypes().get(106);
           internal_static_hbase_pb_SecurityCapabilitiesResponse_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_hbase_pb_SecurityCapabilitiesResponse_descriptor,
diff --git a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
index b0a844a..09479c4 100644
--- a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
+++ b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
@@ -9725,540 +9725,6 @@ public final class ZooKeeperProtos {
     // @@protoc_insertion_point(class_scope:hbase.pb.SwitchState)
   }
 
-  public interface SplitAndMergeStateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-
-    // optional bool split_enabled = 1;
-    /**
-     * optional bool split_enabled = 1;
-     */
-    boolean hasSplitEnabled();
-    /**
-     * optional bool split_enabled = 1;
-     */
-    boolean getSplitEnabled();
-
-    // optional bool merge_enabled = 2;
-    /**
-     * optional bool merge_enabled = 2;
-     */
-    boolean hasMergeEnabled();
-    /**
-     * optional bool merge_enabled = 2;
-     */
-    boolean getMergeEnabled();
-  }
-  /**
-   * Protobuf type {@code hbase.pb.SplitAndMergeState}
-   *
-   * 
-   **
-   * State for split and merge, used in hbck
-   * 
- */ - public static final class SplitAndMergeState extends - com.google.protobuf.GeneratedMessage - implements SplitAndMergeStateOrBuilder { - // Use SplitAndMergeState.newBuilder() to construct. - private SplitAndMergeState(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private SplitAndMergeState(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final SplitAndMergeState defaultInstance; - public static SplitAndMergeState getDefaultInstance() { - return defaultInstance; - } - - public SplitAndMergeState getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private SplitAndMergeState( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - initFields(); - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFields, - extensionRegistry, tag)) { - done = true; - } - break; - } - case 8: { - bitField0_ |= 0x00000001; - splitEnabled_ = input.readBool(); - break; - } - case 16: { - bitField0_ |= 0x00000002; - mergeEnabled_ = input.readBool(); - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.internal_static_hbase_pb_SplitAndMergeState_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.internal_static_hbase_pb_SplitAndMergeState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.class, org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public SplitAndMergeState parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new SplitAndMergeState(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - // optional bool split_enabled = 1; - public static final int SPLIT_ENABLED_FIELD_NUMBER = 1; - private boolean splitEnabled_; - /** - * optional bool split_enabled = 1; - */ - public boolean hasSplitEnabled() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bool split_enabled = 1; - */ - public boolean getSplitEnabled() { - return splitEnabled_; - } - - // optional bool merge_enabled = 2; - public static final int MERGE_ENABLED_FIELD_NUMBER = 2; - private boolean mergeEnabled_; - /** - * optional bool merge_enabled = 2; - */ - public boolean hasMergeEnabled() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool merge_enabled = 2; - */ - public boolean getMergeEnabled() { - return mergeEnabled_; - } - - private void initFields() { - splitEnabled_ = false; - mergeEnabled_ = false; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized != -1) return isInitialized == 1; - - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBool(1, splitEnabled_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBool(2, mergeEnabled_); - } - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, splitEnabled_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, mergeEnabled_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState)) { - return super.equals(obj); - } - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState other = (org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState) obj; - - boolean result = true; - result = result && (hasSplitEnabled() == other.hasSplitEnabled()); - if (hasSplitEnabled()) { - result = result && (getSplitEnabled() - == other.getSplitEnabled()); - } - result = result && (hasMergeEnabled() == other.hasMergeEnabled()); - if (hasMergeEnabled()) { - result = result && (getMergeEnabled() - == other.getMergeEnabled()); - } - result = result && - getUnknownFields().equals(other.getUnknownFields()); - return result; - } - - private int memoizedHashCode = 0; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - if (hasSplitEnabled()) { - hash = (37 * hash) + SPLIT_ENABLED_FIELD_NUMBER; - hash = (53 * hash) + hashBoolean(getSplitEnabled()); - } - if (hasMergeEnabled()) { - hash = (37 * hash) + MERGE_ENABLED_FIELD_NUMBER; - hash = (53 * hash) + hashBoolean(getMergeEnabled()); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code hbase.pb.SplitAndMergeState} - * - *
-     **
-     * State for split and merge, used in hbck
-     * 
- */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder - implements org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeStateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.internal_static_hbase_pb_SplitAndMergeState_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.internal_static_hbase_pb_SplitAndMergeState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.class, org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.Builder.class); - } - - // Construct using org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - splitEnabled_ = false; - bitField0_ = (bitField0_ & ~0x00000001); - mergeEnabled_ = false; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.internal_static_hbase_pb_SplitAndMergeState_descriptor; - } - - public org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState getDefaultInstanceForType() { - return org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.getDefaultInstance(); - } - - public org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState build() { - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState buildPartial() { - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState result = new org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.splitEnabled_ = splitEnabled_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.mergeEnabled_ = mergeEnabled_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState) { - return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState other) { - if (other == org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState.getDefaultInstance()) return this; - if (other.hasSplitEnabled()) { - setSplitEnabled(other.getSplitEnabled()); - } - if (other.hasMergeEnabled()) { - setMergeEnabled(other.getMergeEnabled()); - } - this.mergeUnknownFields(other.getUnknownFields()); - return this; - } - - public final boolean isInitialized() { - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SplitAndMergeState) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - // optional bool split_enabled = 1; - private boolean splitEnabled_ ; - /** - * optional bool split_enabled = 1; - */ - public boolean hasSplitEnabled() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * optional bool split_enabled = 1; - */ - public boolean getSplitEnabled() { - return splitEnabled_; - } - /** - * optional bool split_enabled = 1; - */ - public Builder setSplitEnabled(boolean value) { - bitField0_ |= 0x00000001; - splitEnabled_ = value; - onChanged(); - return this; - } - /** - * optional bool split_enabled = 1; - */ - public Builder clearSplitEnabled() { - bitField0_ = (bitField0_ & ~0x00000001); - splitEnabled_ = false; - onChanged(); - return this; - } - - // optional bool merge_enabled = 2; - private boolean mergeEnabled_ ; - /** - * optional bool merge_enabled = 2; - */ - public boolean hasMergeEnabled() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bool merge_enabled = 2; - */ - public boolean getMergeEnabled() { - return mergeEnabled_; - } - /** - * optional bool merge_enabled = 2; - */ - public Builder setMergeEnabled(boolean value) { - bitField0_ |= 0x00000002; - mergeEnabled_ = value; - onChanged(); - return this; - } - /** - * optional bool merge_enabled = 2; - */ - public Builder clearMergeEnabled() { - bitField0_ = (bitField0_ & ~0x00000002); - mergeEnabled_ = false; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:hbase.pb.SplitAndMergeState) - } - - static { - defaultInstance = new SplitAndMergeState(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:hbase.pb.SplitAndMergeState) - } - private static com.google.protobuf.Descriptors.Descriptor internal_static_hbase_pb_MetaRegionServer_descriptor; private static @@ -10319,11 +9785,6 @@ public final class ZooKeeperProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_hbase_pb_SwitchState_fieldAccessorTable; - private static com.google.protobuf.Descriptors.Descriptor - internal_static_hbase_pb_SplitAndMergeState_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_hbase_pb_SplitAndMergeState_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -10368,11 +9829,9 @@ public final class ZooKeeperProtos { "\n\nlock_owner\030\002 \001(\0132\024.hbase.pb.ServerName" + "\022\021\n\tthread_id\030\003 \001(\003\022\021\n\tis_shared\030\004 \001(\010\022\017" + "\n\007purpose\030\005 \001(\t\022\023\n\013create_time\030\006 \001(\003\"\036\n\013" + - "SwitchState\022\017\n\007enabled\030\001 \001(\010\"B\n\022SplitAnd" + - "MergeState\022\025\n\rsplit_enabled\030\001 \001(\010\022\025\n\rmer" + - "ge_enabled\030\002 \001(\010BE\n*org.apache.hadoop.hb" + - "ase.protobuf.generatedB\017ZooKeeperProtosH" + - "\001\210\001\001\240\001\001" + "SwitchState\022\017\n\007enabled\030\001 \001(\010BE\n*org.apac" + + "he.hadoop.hbase.protobuf.generatedB\017ZooK" + + "eeperProtosH\001\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -10451,12 +9910,6 @@ public final class ZooKeeperProtos { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_hbase_pb_SwitchState_descriptor, new java.lang.String[] { "Enabled", }); - internal_static_hbase_pb_SplitAndMergeState_descriptor = - getDescriptor().getMessageTypes().get(12); - internal_static_hbase_pb_SplitAndMergeState_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_hbase_pb_SplitAndMergeState_descriptor, - new java.lang.String[] { "SplitEnabled", "MergeEnabled", }); return null; } }; diff --git a/hbase-protocol/src/main/protobuf/Master.proto b/hbase-protocol/src/main/protobuf/Master.proto index a335ec7..3fb09f0 100644 --- a/hbase-protocol/src/main/protobuf/Master.proto +++ b/hbase-protocol/src/main/protobuf/Master.proto @@ -280,7 +280,6 @@ message SetSplitOrMergeEnabledRequest { required bool enabled = 1; optional bool synchronous = 2; repeated MasterSwitchType switch_types = 3; - optional bool skip_lock = 4; } message SetSplitOrMergeEnabledResponse { @@ -295,12 +294,6 @@ message IsSplitOrMergeEnabledResponse { required bool enabled = 1; } -message ReleaseSplitOrMergeLockAndRollbackRequest { -} - -message ReleaseSplitOrMergeLockAndRollbackResponse { -} - message NormalizeRequest { } @@ -660,12 +653,6 @@ service MasterService { returns(IsSplitOrMergeEnabledResponse); /** - * Release lock and rollback state. - */ - rpc ReleaseSplitOrMergeLockAndRollback(ReleaseSplitOrMergeLockAndRollbackRequest) - returns(ReleaseSplitOrMergeLockAndRollbackResponse); - - /** * Run region normalizer. Can NOT run for various reasons. Check logs. */ rpc Normalize(NormalizeRequest) diff --git a/hbase-protocol/src/main/protobuf/ZooKeeper.proto b/hbase-protocol/src/main/protobuf/ZooKeeper.proto index 4109481..b408db9 100644 --- a/hbase-protocol/src/main/protobuf/ZooKeeper.proto +++ b/hbase-protocol/src/main/protobuf/ZooKeeper.proto @@ -173,12 +173,4 @@ message TableLock { */ message SwitchState { optional bool enabled = 1; -} - -/** - * State for split and merge, used in hbck - */ -message SplitAndMergeState { - optional bool split_enabled = 1; - optional bool merge_enabled = 2; -} +} \ No newline at end of file diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java index 1b671b3..f391ca3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java @@ -28,7 +28,6 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.CoordinatedStateException; -import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; @@ -44,7 +43,6 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.errorhandling.ForeignException; -import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.MergeRegionException; import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; import org.apache.hadoop.hbase.ipc.PriorityFunction; @@ -1478,10 +1476,6 @@ public class MasterRpcServices extends RSRpcServices try { master.checkInitialized(); boolean newValue = request.getEnabled(); - boolean skipLock = request.getSkipLock(); - if (!master.getSplitOrMergeTracker().lock(skipLock)) { - throw new DoNotRetryIOException("can't set splitOrMerge switch due to lock"); - } for (MasterProtos.MasterSwitchType masterSwitchType : request.getSwitchTypesList()) { Admin.MasterSwitchType switchType = convert(masterSwitchType); boolean oldValue = master.isSplitOrMergeEnabled(switchType); @@ -1515,24 +1509,6 @@ public class MasterRpcServices extends RSRpcServices } @Override - public MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse - releaseSplitOrMergeLockAndRollback(RpcController controller, - MasterProtos.ReleaseSplitOrMergeLockAndRollbackRequest request) throws ServiceException { - try { - master.getSplitOrMergeTracker().releaseLockAndRollback(); - } catch (KeeperException e) { - throw new ServiceException(e); - } catch (DeserializationException e) { - throw new ServiceException(e); - } catch (InterruptedException e) { - throw new ServiceException(e); - } - MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.Builder builder = - MasterProtos.ReleaseSplitOrMergeLockAndRollbackResponse.newBuilder(); - return builder.build(); - } - - @Override public NormalizeResponse normalize(RpcController controller, NormalizeRequest request) throws ServiceException { try { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java index 4596b5b..2473d0a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java @@ -17,16 +17,6 @@ */ package org.apache.hadoop.hbase.util; -import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Joiner; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import com.google.common.collect.Multimap; -import com.google.common.collect.Ordering; -import com.google.common.collect.TreeMultimap; -import com.google.protobuf.ServiceException; - import java.io.Closeable; import java.io.FileNotFoundException; import java.io.IOException; @@ -146,6 +136,15 @@ import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; import org.apache.zookeeper.KeeperException; +import com.google.common.base.Joiner; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; +import com.google.common.collect.Ordering; +import com.google.common.collect.TreeMultimap; +import com.google.protobuf.ServiceException; + /** * HBaseFsck (hbck) is a tool for checking and repairing region consistency and * table integrity problems in a corrupted HBase. @@ -309,7 +308,6 @@ public class HBaseFsck extends Configured implements Closeable { private Map> skippedRegions = new HashMap>(); - ZooKeeperWatcher zkw = null; /** * List of orphaned table ZNodes */ @@ -355,7 +353,6 @@ public class HBaseFsck extends Configured implements Closeable { "hbase.hbck.lockfile.attempt.sleep.interval", DEFAULT_LOCK_FILE_ATTEMPT_SLEEP_INTERVAL), getConf().getInt( "hbase.hbck.lockfile.attempt.maxsleeptime", DEFAULT_LOCK_FILE_ATTEMPT_MAX_SLEEP_TIME)); - zkw = createZooKeeperWatcher(); } private class FileLockCallable implements Callable { @@ -697,8 +694,7 @@ public class HBaseFsck extends Configured implements Closeable { } boolean[] oldSplitAndMerge = null; if (shouldDisableSplitAndMerge()) { - admin.releaseSplitOrMergeLockAndRollback(); - oldSplitAndMerge = admin.setSplitOrMergeEnabled(false, false, false, + oldSplitAndMerge = admin.setSplitOrMergeEnabled(false, false, Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); } @@ -715,7 +711,14 @@ public class HBaseFsck extends Configured implements Closeable { if (shouldDisableSplitAndMerge()) { if (oldSplitAndMerge != null) { - admin.releaseSplitOrMergeLockAndRollback(); + if (oldSplitAndMerge[0] && oldSplitAndMerge[1]) { + admin.setSplitOrMergeEnabled(true, false, + Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); + } else if (oldSplitAndMerge[0]) { + admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.SPLIT); + } else if (oldSplitAndMerge[1]) { + admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.MERGE); + } } } } @@ -752,10 +755,6 @@ public class HBaseFsck extends Configured implements Closeable { @Override public void close() throws IOException { - if (zkw != null) { - zkw.close(); - zkw = null; - } IOUtils.closeQuietly(admin); IOUtils.closeQuietly(meta); IOUtils.closeQuietly(connection); @@ -1653,6 +1652,7 @@ public class HBaseFsck extends Configured implements Closeable { HConnectionManager.execute(new HConnectable(getConf()) { @Override public Void connect(HConnection connection) throws IOException { + ZooKeeperWatcher zkw = createZooKeeperWatcher(); try { for (TableName tableName : ZKTableStateClientSideReader.getDisabledOrDisablingTables(zkw)) { @@ -1662,6 +1662,8 @@ public class HBaseFsck extends Configured implements Closeable { throw new IOException(ke); } catch (InterruptedException e) { throw new InterruptedIOException(); + } finally { + zkw.close(); } return null; } @@ -1784,7 +1786,14 @@ public class HBaseFsck extends Configured implements Closeable { private ServerName getMetaRegionServerName(int replicaId) throws IOException, KeeperException { - return new MetaTableLocator().getMetaRegionLocation(zkw, replicaId); + ZooKeeperWatcher zkw = createZooKeeperWatcher(); + ServerName sn = null; + try { + sn = new MetaTableLocator().getMetaRegionLocation(zkw, replicaId); + } finally { + zkw.close(); + } + return sn; } /** @@ -3230,21 +3239,32 @@ public class HBaseFsck extends Configured implements Closeable { } private void checkAndFixTableLocks() throws IOException { - TableLockChecker checker = new TableLockChecker(zkw, errors); - checker.checkTableLocks(); + ZooKeeperWatcher zkw = createZooKeeperWatcher(); - if (this.fixTableLocks) { - checker.fixExpiredTableLocks(); + try { + TableLockChecker checker = new TableLockChecker(zkw, errors); + checker.checkTableLocks(); + + if (this.fixTableLocks) { + checker.fixExpiredTableLocks(); + } + } finally { + zkw.close(); } } private void checkAndFixReplication() throws IOException { - ReplicationChecker checker = new ReplicationChecker(getConf(), zkw, connection, errors); - checker.checkUnDeletedQueues(); + ZooKeeperWatcher zkw = createZooKeeperWatcher(); + try { + ReplicationChecker checker = new ReplicationChecker(getConf(), zkw, connection, errors); + checker.checkUnDeletedQueues(); - if (checker.hasUnDeletedQueues() && this.fixReplication) { - checker.fixUnDeletedQueues(); - setShouldRerun(); + if (checker.hasUnDeletedQueues() && this.fixReplication) { + checker.fixUnDeletedQueues(); + setShouldRerun(); + } + } finally { + zkw.close(); } } @@ -3256,41 +3276,47 @@ public class HBaseFsck extends Configured implements Closeable { */ private void checkAndFixOrphanedTableZNodes() throws IOException, KeeperException, InterruptedException { - Set enablingTables = ZKTableStateClientSideReader.getEnablingTables(zkw); - String msg; - TableInfo tableInfo; - - for (TableName tableName : enablingTables) { - // Check whether the table exists in hbase - tableInfo = tablesInfo.get(tableName); - if (tableInfo != null) { - // Table exists. This table state is in transit. No problem for this table. - continue; - } + ZooKeeperWatcher zkw = createZooKeeperWatcher(); - msg = "Table " + tableName + " not found in hbase:meta. Orphaned table ZNode found."; - LOG.warn(msg); - orphanedTableZNodes.add(tableName); - errors.reportError(ERROR_CODE.ORPHANED_ZK_TABLE_ENTRY, msg); - } + try { + Set enablingTables = ZKTableStateClientSideReader.getEnablingTables(zkw); + String msg; + TableInfo tableInfo; + + for (TableName tableName : enablingTables) { + // Check whether the table exists in hbase + tableInfo = tablesInfo.get(tableName); + if (tableInfo != null) { + // Table exists. This table state is in transit. No problem for this table. + continue; + } - if (orphanedTableZNodes.size() > 0 && this.fixTableZNodes) { - ZKTableStateManager zkTableStateMgr = new ZKTableStateManager(zkw); + msg = "Table " + tableName + " not found in hbase:meta. Orphaned table ZNode found."; + LOG.warn(msg); + orphanedTableZNodes.add(tableName); + errors.reportError(ERROR_CODE.ORPHANED_ZK_TABLE_ENTRY, msg); + } - for (TableName tableName : orphanedTableZNodes) { - try { - // Set the table state to be disabled so that if we made mistake, we can trace - // the history and figure it out. - // Another choice is to call checkAndRemoveTableState() to delete the orphaned ZNode. - // Both approaches works. - zkTableStateMgr.setTableState(tableName, ZooKeeperProtos.Table.State.DISABLED); - } catch (CoordinatedStateException e) { - // This exception should not happen here - LOG.error( - "Got a CoordinatedStateException while fixing the ENABLING table znode " + tableName, - e); + if (orphanedTableZNodes.size() > 0 && this.fixTableZNodes) { + ZKTableStateManager zkTableStateMgr = new ZKTableStateManager(zkw); + + for (TableName tableName : orphanedTableZNodes) { + try { + // Set the table state to be disabled so that if we made mistake, we can trace + // the history and figure it out. + // Another choice is to call checkAndRemoveTableState() to delete the orphaned ZNode. + // Both approaches works. + zkTableStateMgr.setTableState(tableName, ZooKeeperProtos.Table.State.DISABLED); + } catch (CoordinatedStateException e) { + // This exception should not happen here + LOG.error( + "Got a CoordinatedStateException while fixing the ENABLING table znode " + tableName, + e); + } } } + } finally { + zkw.close(); } } @@ -3360,7 +3386,12 @@ public class HBaseFsck extends Configured implements Closeable { private void unassignMetaReplica(HbckInfo hi) throws IOException, InterruptedException, KeeperException { undeployRegions(hi); - ZKUtil.deleteNode(zkw, zkw.getZNodeForReplica(hi.metaEntry.getReplicaId())); + ZooKeeperWatcher zkw = createZooKeeperWatcher(); + try { + ZKUtil.deleteNode(zkw, zkw.getZNodeForReplica(hi.metaEntry.getReplicaId())); + } finally { + zkw.close(); + } } private void assignMetaReplica(int replicaId) @@ -4192,12 +4223,7 @@ public class HBaseFsck extends Configured implements Closeable { * Disable the split and merge */ public static void setDisableSplitAndMerge() { - setDisableSplitAndMerge(true); - } - - @VisibleForTesting - public static void setDisableSplitAndMerge(boolean flag) { - disableSplitAndMerge = flag; + disableSplitAndMerge = true; } /** @@ -4217,7 +4243,7 @@ public class HBaseFsck extends Configured implements Closeable { public boolean shouldDisableSplitAndMerge() { return fixAny || disableSplitAndMerge; } - + /** * Set summary mode. * Print only summary of the tables and status (OK or INCONSISTENT) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/SplitOrMergeTracker.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/SplitOrMergeTracker.java index e548245..0d729a1 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/SplitOrMergeTracker.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/SplitOrMergeTracker.java @@ -18,8 +18,6 @@ package org.apache.hadoop.hbase.zookeeper; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Abortable; @@ -27,7 +25,6 @@ import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; -import org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos; import org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.SwitchState; import org.apache.hadoop.hbase.util.Bytes; import org.apache.zookeeper.KeeperException; @@ -40,13 +37,8 @@ import org.apache.zookeeper.KeeperException; @InterfaceAudience.Private public class SplitOrMergeTracker { - public static final String LOCK = "splitOrMergeLock"; - public static final String STATE = "splitOrMergeState"; - private String splitZnode; private String mergeZnode; - private String splitOrMergeLock; - private ZooKeeperWatcher watcher; private SwitchStateTracker splitStateTracker; private SwitchStateTracker mergeStateTracker; @@ -57,9 +49,6 @@ public class SplitOrMergeTracker { if (ZKUtil.checkExists(watcher, watcher.getSwitchZNode()) < 0) { ZKUtil.createAndFailSilent(watcher, watcher.getSwitchZNode()); } - if (ZKUtil.checkExists(watcher, watcher.getSwitchLockZNode()) < 0) { - ZKUtil.createAndFailSilent(watcher, watcher.getSwitchLockZNode()); - } } catch (KeeperException e) { throw new RuntimeException(e); } @@ -67,12 +56,8 @@ public class SplitOrMergeTracker { conf.get("zookeeper.znode.switch.split", "split")); mergeZnode = ZKUtil.joinZNode(watcher.getSwitchZNode(), conf.get("zookeeper.znode.switch.merge", "merge")); - - splitOrMergeLock = ZKUtil.joinZNode(watcher.getSwitchLockZNode(), LOCK); - splitStateTracker = new SwitchStateTracker(watcher, splitZnode, abortable); mergeStateTracker = new SwitchStateTracker(watcher, mergeZnode, abortable); - this.watcher = watcher; } public void start() { @@ -106,76 +91,6 @@ public class SplitOrMergeTracker { } } - /** - * rollback the original state and delete lock node. - * */ - public void releaseLockAndRollback() - throws KeeperException, DeserializationException, InterruptedException { - if (ZKUtil.checkExists(watcher, splitOrMergeLock) != -1) { - List ops = new ArrayList<>(); - rollback(ops); - ops.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(splitOrMergeLock)); - ZKUtil.multiOrSequential(watcher, ops, false); - } - } - - // If there is old states of switch on zk, do rollback - private void rollback(List ops) throws KeeperException, InterruptedException, DeserializationException { - String splitOrMergeState = ZKUtil.joinZNode(watcher.getSwitchLockZNode(), - SplitOrMergeTracker.STATE); - if (ZKUtil.checkExists(watcher, splitOrMergeState) != -1) { - byte[] bytes = ZKUtil.getData(watcher, splitOrMergeState); - ProtobufUtil.expectPBMagicPrefix(bytes); - ZooKeeperProtos.SplitAndMergeState.Builder builder = - ZooKeeperProtos.SplitAndMergeState.newBuilder(); - try { - int magicLen = ProtobufUtil.lengthOfPBMagic(); - ProtobufUtil.mergeFrom(builder, bytes, magicLen, bytes.length - magicLen); - } catch (IOException e) { - throw new DeserializationException(e); - } - ZooKeeperProtos.SplitAndMergeState splitAndMergeState = builder.build(); - splitStateTracker.setSwitchEnabled(splitAndMergeState.hasSplitEnabled()); - mergeStateTracker.setSwitchEnabled(splitAndMergeState.hasMergeEnabled()); - ops.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(splitOrMergeState)); - } - } - - /** - * If there is no lock, you could acquire the lock. - * After we create lock on zk, we save original splitOrMerge switches on zk. - * @param skipLock if true, it means we will skip the lock action - * but we still need to check whether the lock exists or not. - * @return true, lock successfully. otherwise, false - * */ - public boolean lock(boolean skipLock) throws KeeperException { - if (ZKUtil.checkExists(watcher, splitOrMergeLock) != -1) { - return false; - } - if (skipLock) { - return true; - } - ZKUtil.createAndFailSilent(watcher, splitOrMergeLock); - if (ZKUtil.checkExists(watcher, splitOrMergeLock) != -1) { - saveOriginalState(); - return true; - } - return false; - } - - private void saveOriginalState() throws KeeperException { - boolean splitEnabled = isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT); - boolean mergeEnabled = isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE); - String splitOrMergeStates = ZKUtil.joinZNode(watcher.getSwitchLockZNode(), - SplitOrMergeTracker.STATE); - ZooKeeperProtos.SplitAndMergeState.Builder builder - = ZooKeeperProtos.SplitAndMergeState.newBuilder(); - builder.setSplitEnabled(splitEnabled); - builder.setMergeEnabled(mergeEnabled); - ZKUtil.createSetData(watcher, splitOrMergeStates, - ProtobufUtil.prependPBMagic(builder.build().toByteArray())); - } - private static class SwitchStateTracker extends ZooKeeperNodeTracker { public SwitchStateTracker(ZooKeeperWatcher watcher, String node, Abortable abortable) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.java index f8b2877..477be1e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.java @@ -41,7 +41,6 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; @Category({MediumTests.class, ClientTests.class}) public class TestSplitOrMergeStatus { @@ -78,15 +77,14 @@ public class TestSplitOrMergeStatus { Admin admin = TEST_UTIL.getHBaseAdmin(); initSwitchStatus(admin); - boolean[] results = admin.setSplitOrMergeEnabled(false, false, - true, Admin.MasterSwitchType.SPLIT); + boolean[] results = admin.setSplitOrMergeEnabled(false, false, Admin.MasterSwitchType.SPLIT); assertEquals(results.length, 1); assertTrue(results[0]); admin.split(t.getName()); int count = waitOnSplitOrMerge(t).size(); assertTrue(orignalCount == count); - results = admin.setSplitOrMergeEnabled(true, false, true, Admin.MasterSwitchType.SPLIT); + results = admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.SPLIT); assertEquals(results.length, 1); assertFalse(results[0]); admin.split(t.getName()); @@ -111,8 +109,7 @@ public class TestSplitOrMergeStatus { waitForMergable(admin, name); int orignalCount = locator.getAllRegionLocations().size(); - boolean[] results = admin.setSplitOrMergeEnabled(false, false, - true, Admin.MasterSwitchType.MERGE); + boolean[] results = admin.setSplitOrMergeEnabled(false, false, Admin.MasterSwitchType.MERGE); assertEquals(results.length, 1); assertTrue(results[0]); List regions = admin.getTableRegions(t.getName()); @@ -123,7 +120,7 @@ public class TestSplitOrMergeStatus { assertTrue(orignalCount == count); waitForMergable(admin, name); - results = admin.setSplitOrMergeEnabled(true, false, true, Admin.MasterSwitchType.MERGE); + results = admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.MERGE); assertEquals(results.length, 1); assertFalse(results[0]); admin.mergeRegions(regions.get(0).getEncodedNameAsBytes(), @@ -136,7 +133,7 @@ public class TestSplitOrMergeStatus { @Test public void testMultiSwitches() throws IOException { Admin admin = TEST_UTIL.getHBaseAdmin(); - boolean[] switches = admin.setSplitOrMergeEnabled(false, false, true, + boolean[] switches = admin.setSplitOrMergeEnabled(false, false, Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); for (boolean s : switches){ assertTrue(s); @@ -146,34 +143,12 @@ public class TestSplitOrMergeStatus { admin.close(); } - @Test - public void testSwitchLock() throws IOException { - Admin admin = TEST_UTIL.getHBaseAdmin(); - admin.setSplitOrMergeEnabled(false, false, false, - Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); - try { - admin.setSplitOrMergeEnabled(false, false, true, - Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); - fail(); - } catch (IOException e) { - LOG.info("", e); - } - admin.releaseSplitOrMergeLockAndRollback(); - try { - admin.setSplitOrMergeEnabled(true, false, true, - Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); - } catch (IOException e) { - fail(); - } - admin.close(); - } - private void initSwitchStatus(Admin admin) throws IOException { if (!admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT)) { - admin.setSplitOrMergeEnabled(true, false, true, Admin.MasterSwitchType.SPLIT); + admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.SPLIT); } if (!admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE)) { - admin.setSplitOrMergeEnabled(true, false, true, Admin.MasterSwitchType.MERGE); + admin.setSplitOrMergeEnabled(true, false, Admin.MasterSwitchType.MERGE); } assertTrue(admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT)); assertTrue(admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java index 6b7c304..0df2aed 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java @@ -37,6 +37,8 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Random; +import java.util.Map.Entry; import java.util.NavigableMap; import java.util.Set; import java.util.concurrent.Callable; @@ -82,10 +84,12 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HConnection; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.MetaScanner; +import org.apache.hadoop.hbase.client.Mutation; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionReplicaUtil; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; +import org.apache.hadoop.hbase.client.RowMutations; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.replication.ReplicationAdmin; @@ -110,6 +114,7 @@ import org.apache.hadoop.hbase.regionserver.SplitTransactionImpl; import org.apache.hadoop.hbase.regionserver.TestEndToEndSplitTransaction; import org.apache.hadoop.hbase.replication.ReplicationFactory; import org.apache.hadoop.hbase.replication.ReplicationQueues; +import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter; import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE; import org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo; @@ -131,10 +136,6 @@ import org.junit.experimental.categories.Category; import org.junit.rules.TestName; import com.google.common.collect.Multimap; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.spy; /** * This tests HBaseFsck's ability to detect reasons for inconsistent tables. @@ -2877,56 +2878,6 @@ public class TestHBaseFsck { } - /** - * See HBASE-15406 - * */ - @Test - public void testSplitOrMergeStatWhenHBCKAbort() throws Exception { - admin.setSplitOrMergeEnabled(true, false, true, - Admin.MasterSwitchType.SPLIT, Admin.MasterSwitchType.MERGE); - boolean oldSplit = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT); - boolean oldMerge = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE); - - assertTrue(oldSplit); - assertTrue(oldMerge); - - ExecutorService exec = new ScheduledThreadPoolExecutor(10); - HBaseFsck hbck = new HBaseFsck(conf, exec); - HBaseFsck.setDisplayFullReport(); // i.e. -details - final HBaseFsck spiedHbck = spy(hbck); - doAnswer(new Answer() { - @Override - public Object answer(InvocationOnMock invocation) throws Throwable { - // we close splitOrMerge flag in hbck, so in finally hbck will not set splitOrMerge back. - spiedHbck.setDisableSplitAndMerge(false); - return null; - } - }).when(spiedHbck).onlineConsistencyRepair(); - spiedHbck.setDisableSplitAndMerge(); - spiedHbck.connect(); - spiedHbck.onlineHbck(); - spiedHbck.close(); - - boolean split = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT); - boolean merge = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE); - assertFalse(split); - assertFalse(merge); - - // rerun hbck to repair the switches state - hbck = new HBaseFsck(conf, exec); - hbck.setDisableSplitAndMerge(); - hbck.connect(); - hbck.onlineHbck(); - hbck.close(); - - split = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.SPLIT); - merge = admin.isSplitOrMergeEnabled(Admin.MasterSwitchType.MERGE); - - assertTrue(split); - assertTrue(merge); - } - - public static class MasterSyncObserver extends BaseMasterObserver { volatile CountDownLatch tableCreationLatch = null; volatile CountDownLatch tableDeletionLatch = null; diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index a91d45d..7950ca6 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -113,7 +113,7 @@ module Hbase end @admin.setSplitOrMergeEnabled( java.lang.Boolean.valueOf(enabled), java.lang.Boolean.valueOf(false), - java.lang.Boolean.valueOf(true), switch_type)[0] + switch_type)[0] end #---------------------------------------------------------------------------------------------- -- 2.8.0-rc2