From 18209736da28877d503bca86229841927fe73865 Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Tue, 25 Jun 2013 12:04:46 -0700 Subject: [PATCH] Add max RPC version to meta-region-server zk node. --- .../hadoop/hbase/zookeeper/MetaRegionTracker.java | 6 +- .../hbase/protobuf/generated/ZooKeeperProtos.java | 126 +++++++++++++++----- hbase-protocol/src/main/protobuf/ZooKeeper.proto | 2 + 3 files changed, 103 insertions(+), 31 deletions(-) diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java index aca2708..e77041f 100644 --- hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java +++ hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.zookeeper; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.hbase.Abortable; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; @@ -142,7 +143,10 @@ public class MetaRegionTracker extends ZooKeeperNodeTracker { HBaseProtos.ServerName.newBuilder().setHostName(sn.getHostname()). setPort(sn.getPort()).setStartCode(sn.getStartcode()).build(); ZooKeeperProtos.MetaRegionServer pbrsr = - ZooKeeperProtos.MetaRegionServer.newBuilder().setServer(pbsn).build(); + ZooKeeperProtos.MetaRegionServer.newBuilder() + .setServer(pbsn) + .setRpcVersion(HConstants.RPC_CURRENT_VERSION) + .build(); return ProtobufUtil.prependPBMagic(pbrsr.toByteArray()); } diff --git hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java index 3a1a212..3addc67 100644 --- hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java +++ hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java @@ -15,6 +15,10 @@ public final class ZooKeeperProtos { boolean hasServer(); org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServer(); org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerOrBuilder(); + + // optional uint32 rpcVersion = 2; + boolean hasRpcVersion(); + int getRpcVersion(); } public static final class MetaRegionServer extends com.google.protobuf.GeneratedMessage @@ -58,8 +62,19 @@ public final class ZooKeeperProtos { return server_; } + // optional uint32 rpcVersion = 2; + public static final int RPCVERSION_FIELD_NUMBER = 2; + private int rpcVersion_; + public boolean hasRpcVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public int getRpcVersion() { + return rpcVersion_; + } + private void initFields() { server_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance(); + rpcVersion_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -84,6 +99,9 @@ public final class ZooKeeperProtos { if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeMessage(1, server_); } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeUInt32(2, rpcVersion_); + } getUnknownFields().writeTo(output); } @@ -97,6 +115,10 @@ public final class ZooKeeperProtos { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, server_); } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, rpcVersion_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -125,6 +147,11 @@ public final class ZooKeeperProtos { result = result && getServer() .equals(other.getServer()); } + result = result && (hasRpcVersion() == other.hasRpcVersion()); + if (hasRpcVersion()) { + result = result && (getRpcVersion() + == other.getRpcVersion()); + } result = result && getUnknownFields().equals(other.getUnknownFields()); return result; @@ -138,6 +165,10 @@ public final class ZooKeeperProtos { hash = (37 * hash) + SERVER_FIELD_NUMBER; hash = (53 * hash) + getServer().hashCode(); } + if (hasRpcVersion()) { + hash = (37 * hash) + RPCVERSION_FIELD_NUMBER; + hash = (53 * hash) + getRpcVersion(); + } hash = (29 * hash) + getUnknownFields().hashCode(); return hash; } @@ -261,6 +292,8 @@ public final class ZooKeeperProtos { serverBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); + rpcVersion_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -307,6 +340,10 @@ public final class ZooKeeperProtos { } else { result.server_ = serverBuilder_.build(); } + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.rpcVersion_ = rpcVersion_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -326,6 +363,9 @@ public final class ZooKeeperProtos { if (other.hasServer()) { mergeServer(other.getServer()); } + if (other.hasRpcVersion()) { + setRpcVersion(other.getRpcVersion()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -374,6 +414,11 @@ public final class ZooKeeperProtos { setServer(subBuilder.buildPartial()); break; } + case 16: { + bitField0_ |= 0x00000002; + rpcVersion_ = input.readUInt32(); + break; + } } } } @@ -470,6 +515,27 @@ public final class ZooKeeperProtos { return serverBuilder_; } + // optional uint32 rpcVersion = 2; + private int rpcVersion_ ; + public boolean hasRpcVersion() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public int getRpcVersion() { + return rpcVersion_; + } + public Builder setRpcVersion(int value) { + bitField0_ |= 0x00000002; + rpcVersion_ = value; + onChanged(); + return this; + } + public Builder clearRpcVersion() { + bitField0_ = (bitField0_ & ~0x00000002); + rpcVersion_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:MetaRegionServer) } @@ -6941,35 +7007,35 @@ public final class ZooKeeperProtos { descriptor; static { java.lang.String[] descriptorData = { - "\n\017ZooKeeper.proto\032\013hbase.proto\"/\n\020MetaRe" + - "gionServer\022\033\n\006server\030\001 \002(\0132\013.ServerName\"" + - "%\n\006Master\022\033\n\006master\030\001 \002(\0132\013.ServerName\"\036" + - "\n\tClusterUp\022\021\n\tstartDate\030\001 \002(\t\"\203\001\n\020Regio" + - "nTransition\022\025\n\reventTypeCode\030\001 \002(\r\022\022\n\nre" + - "gionName\030\002 \002(\014\022\022\n\ncreateTime\030\003 \002(\004\022\037\n\nse" + - "rverName\030\004 \002(\0132\013.ServerName\022\017\n\007payload\030\005" + - " \001(\014\"\230\001\n\014SplitLogTask\022\"\n\005state\030\001 \002(\0162\023.S" + - "plitLogTask.State\022\037\n\nserverName\030\002 \002(\0132\013." + - "ServerName\"C\n\005State\022\016\n\nUNASSIGNED\020\000\022\t\n\005O", - "WNED\020\001\022\014\n\010RESIGNED\020\002\022\010\n\004DONE\020\003\022\007\n\003ERR\020\004\"" + - "n\n\005Table\022$\n\005state\030\001 \002(\0162\014.Table.State:\007E" + - "NABLED\"?\n\005State\022\013\n\007ENABLED\020\000\022\014\n\010DISABLED" + - "\020\001\022\r\n\tDISABLING\020\002\022\014\n\010ENABLING\020\003\"%\n\017Repli" + - "cationPeer\022\022\n\nclusterkey\030\001 \002(\t\"^\n\020Replic" + - "ationState\022&\n\005state\030\001 \002(\0162\027.ReplicationS" + - "tate.State\"\"\n\005State\022\013\n\007ENABLED\020\000\022\014\n\010DISA" + - "BLED\020\001\"+\n\027ReplicationHLogPosition\022\020\n\010pos" + - "ition\030\001 \002(\003\"$\n\017ReplicationLock\022\021\n\tlockOw" + - "ner\030\001 \002(\t\"\207\001\n\tTableLock\022\021\n\ttableName\030\001 \001", - "(\014\022\036\n\tlockOwner\030\002 \001(\0132\013.ServerName\022\020\n\010th" + - "readId\030\003 \001(\003\022\020\n\010isShared\030\004 \001(\010\022\017\n\007purpos" + - "e\030\005 \001(\t\022\022\n\ncreateTime\030\006 \001(\003\"9\n\017StoreSequ" + - "enceId\022\022\n\nfamilyName\030\001 \002(\014\022\022\n\nsequenceId" + - "\030\002 \002(\004\"b\n\026RegionStoreSequenceIds\022\035\n\025last" + - "FlushedSequenceId\030\001 \002(\004\022)\n\017storeSequence" + - "Id\030\002 \003(\0132\020.StoreSequenceIdBE\n*org.apache" + - ".hadoop.hbase.protobuf.generatedB\017ZooKee" + - "perProtosH\001\210\001\001\240\001\001" + "\n\017ZooKeeper.proto\032\013hbase.proto\"C\n\020MetaRe" + + "gionServer\022\033\n\006server\030\001 \002(\0132\013.ServerName\022" + + "\022\n\nrpcVersion\030\002 \001(\r\"%\n\006Master\022\033\n\006master\030" + + "\001 \002(\0132\013.ServerName\"\036\n\tClusterUp\022\021\n\tstart" + + "Date\030\001 \002(\t\"\203\001\n\020RegionTransition\022\025\n\revent" + + "TypeCode\030\001 \002(\r\022\022\n\nregionName\030\002 \002(\014\022\022\n\ncr" + + "eateTime\030\003 \002(\004\022\037\n\nserverName\030\004 \002(\0132\013.Ser" + + "verName\022\017\n\007payload\030\005 \001(\014\"\230\001\n\014SplitLogTas" + + "k\022\"\n\005state\030\001 \002(\0162\023.SplitLogTask.State\022\037\n" + + "\nserverName\030\002 \002(\0132\013.ServerName\"C\n\005State\022", + "\016\n\nUNASSIGNED\020\000\022\t\n\005OWNED\020\001\022\014\n\010RESIGNED\020\002" + + "\022\010\n\004DONE\020\003\022\007\n\003ERR\020\004\"n\n\005Table\022$\n\005state\030\001 " + + "\002(\0162\014.Table.State:\007ENABLED\"?\n\005State\022\013\n\007E" + + "NABLED\020\000\022\014\n\010DISABLED\020\001\022\r\n\tDISABLING\020\002\022\014\n" + + "\010ENABLING\020\003\"%\n\017ReplicationPeer\022\022\n\ncluste" + + "rkey\030\001 \002(\t\"^\n\020ReplicationState\022&\n\005state\030" + + "\001 \002(\0162\027.ReplicationState.State\"\"\n\005State\022" + + "\013\n\007ENABLED\020\000\022\014\n\010DISABLED\020\001\"+\n\027Replicatio" + + "nHLogPosition\022\020\n\010position\030\001 \002(\003\"$\n\017Repli" + + "cationLock\022\021\n\tlockOwner\030\001 \002(\t\"\207\001\n\tTableL", + "ock\022\021\n\ttableName\030\001 \001(\014\022\036\n\tlockOwner\030\002 \001(" + + "\0132\013.ServerName\022\020\n\010threadId\030\003 \001(\003\022\020\n\010isSh" + + "ared\030\004 \001(\010\022\017\n\007purpose\030\005 \001(\t\022\022\n\ncreateTim" + + "e\030\006 \001(\003\"9\n\017StoreSequenceId\022\022\n\nfamilyName" + + "\030\001 \002(\014\022\022\n\nsequenceId\030\002 \002(\004\"b\n\026RegionStor" + + "eSequenceIds\022\035\n\025lastFlushedSequenceId\030\001 " + + "\002(\004\022)\n\017storeSequenceId\030\002 \003(\0132\020.StoreSequ" + + "enceIdBE\n*org.apache.hadoop.hbase.protob" + + "uf.generatedB\017ZooKeeperProtosH\001\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -6981,7 +7047,7 @@ public final class ZooKeeperProtos { internal_static_MetaRegionServer_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_MetaRegionServer_descriptor, - new java.lang.String[] { "Server", }, + new java.lang.String[] { "Server", "RpcVersion", }, org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.MetaRegionServer.class, org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.MetaRegionServer.Builder.class); internal_static_Master_descriptor = diff --git hbase-protocol/src/main/protobuf/ZooKeeper.proto hbase-protocol/src/main/protobuf/ZooKeeper.proto index e14ef0e..e1ed560 100644 --- hbase-protocol/src/main/protobuf/ZooKeeper.proto +++ hbase-protocol/src/main/protobuf/ZooKeeper.proto @@ -33,6 +33,7 @@ import "hbase.proto"; message MetaRegionServer { // The ServerName hosting the meta region currently. required ServerName server = 1; + optional uint32 rpcVersion = 2; } /** @@ -41,6 +42,7 @@ message MetaRegionServer { message Master { // The ServerName of the current Master required ServerName master = 1; + optional uint32 rpcVersion = 2; } /** -- 1.7.10.2 (Apple Git-33)