You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ec...@apache.org on 2013/07/06 20:51:52 UTC

svn commit: r1500309 - in /hbase/branches/0.95: hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ hbase-protocol/src/main/protobuf/

Author: eclark
Date: Sat Jul  6 18:51:52 2013
New Revision: 1500309

URL: http://svn.apache.org/r1500309
Log:
HBASE-8789 Add max RPC version to meta-region-server zk node.

Modified:
    hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java
    hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java
    hbase/branches/0.95/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
    hbase/branches/0.95/hbase-protocol/src/main/protobuf/ZooKeeper.proto

Modified: hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java?rev=1500309&r1=1500308&r2=1500309&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java (original)
+++ hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java Sat Jul  6 18:51:52 2013
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.zookeepe
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.hbase.Abortable;
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.exceptions.DeserializationException;
 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
@@ -152,6 +153,7 @@ public class MasterAddressTracker extend
      snbuilder.setPort(sn.getPort());
      snbuilder.setStartCode(sn.getStartcode());
      mbuilder.setMaster(snbuilder.build());
+     mbuilder.setRpcVersion(HConstants.RPC_CURRENT_VERSION);
      return ProtobufUtil.prependPBMagic(mbuilder.build().toByteArray());
    }
 

Modified: hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java?rev=1500309&r1=1500308&r2=1500309&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java (original)
+++ hbase/branches/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MetaRegionTracker.java Sat Jul  6 18:51:52 2013
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.zookeepe
 
 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;
@@ -137,12 +138,19 @@ public class MetaRegionTracker extends Z
    * @return The content of the meta-region-server znode
    */
   static byte [] toByteArray(final ServerName sn) {
-    // ZNode content is a pb message preceeded by some pb magic.
+    // ZNode content is a pb message preceded by some pb magic.
     HBaseProtos.ServerName pbsn =
-      HBaseProtos.ServerName.newBuilder().setHostName(sn.getHostname()).
-      setPort(sn.getPort()).setStartCode(sn.getStartcode()).build();
+      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());
   }
 

Modified: hbase/branches/0.95/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java?rev=1500309&r1=1500308&r2=1500309&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java (original)
+++ hbase/branches/0.95/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java Sat Jul  6 18:51:52 2013
@@ -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)
     }
     
@@ -488,6 +554,10 @@ public final class ZooKeeperProtos {
     boolean hasMaster();
     org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getMaster();
     org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getMasterOrBuilder();
+    
+    // optional uint32 rpcVersion = 2;
+    boolean hasRpcVersion();
+    int getRpcVersion();
   }
   public static final class Master extends
       com.google.protobuf.GeneratedMessage
@@ -531,8 +601,19 @@ public final class ZooKeeperProtos {
       return master_;
     }
     
+    // 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() {
       master_ = org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance();
+      rpcVersion_ = 0;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -557,6 +638,9 @@ public final class ZooKeeperProtos {
       if (((bitField0_ & 0x00000001) == 0x00000001)) {
         output.writeMessage(1, master_);
       }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeUInt32(2, rpcVersion_);
+      }
       getUnknownFields().writeTo(output);
     }
     
@@ -570,6 +654,10 @@ public final class ZooKeeperProtos {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, master_);
       }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(2, rpcVersion_);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
@@ -598,6 +686,11 @@ public final class ZooKeeperProtos {
         result = result && getMaster()
             .equals(other.getMaster());
       }
+      result = result && (hasRpcVersion() == other.hasRpcVersion());
+      if (hasRpcVersion()) {
+        result = result && (getRpcVersion()
+            == other.getRpcVersion());
+      }
       result = result &&
           getUnknownFields().equals(other.getUnknownFields());
       return result;
@@ -611,6 +704,10 @@ public final class ZooKeeperProtos {
         hash = (37 * hash) + MASTER_FIELD_NUMBER;
         hash = (53 * hash) + getMaster().hashCode();
       }
+      if (hasRpcVersion()) {
+        hash = (37 * hash) + RPCVERSION_FIELD_NUMBER;
+        hash = (53 * hash) + getRpcVersion();
+      }
       hash = (29 * hash) + getUnknownFields().hashCode();
       return hash;
     }
@@ -734,6 +831,8 @@ public final class ZooKeeperProtos {
           masterBuilder_.clear();
         }
         bitField0_ = (bitField0_ & ~0x00000001);
+        rpcVersion_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
       
@@ -780,6 +879,10 @@ public final class ZooKeeperProtos {
         } else {
           result.master_ = masterBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.rpcVersion_ = rpcVersion_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -799,6 +902,9 @@ public final class ZooKeeperProtos {
         if (other.hasMaster()) {
           mergeMaster(other.getMaster());
         }
+        if (other.hasRpcVersion()) {
+          setRpcVersion(other.getRpcVersion());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -847,6 +953,11 @@ public final class ZooKeeperProtos {
               setMaster(subBuilder.buildPartial());
               break;
             }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              rpcVersion_ = input.readUInt32();
+              break;
+            }
           }
         }
       }
@@ -943,6 +1054,27 @@ public final class ZooKeeperProtos {
         return masterBuilder_;
       }
       
+      // 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:Master)
     }
     
@@ -6941,16 +7073,17 @@ 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\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\"9\n\006Master\022\033\n\006master\030" +
+      "\001 \002(\0132\013.ServerName\022\022\n\nrpcVersion\030\002 \001(\r\"\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",
+      "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" +
@@ -6959,8 +7092,8 @@ public final class ZooKeeperProtos {
       "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",
+      "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" +
@@ -6981,7 +7114,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 =
@@ -6989,7 +7122,7 @@ public final class ZooKeeperProtos {
           internal_static_Master_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_Master_descriptor,
-              new java.lang.String[] { "Master", },
+              new java.lang.String[] { "Master", "RpcVersion", },
               org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.Master.class,
               org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos.Master.Builder.class);
           internal_static_ClusterUp_descriptor =

Modified: hbase/branches/0.95/hbase-protocol/src/main/protobuf/ZooKeeper.proto
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-protocol/src/main/protobuf/ZooKeeper.proto?rev=1500309&r1=1500308&r2=1500309&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-protocol/src/main/protobuf/ZooKeeper.proto (original)
+++ hbase/branches/0.95/hbase-protocol/src/main/protobuf/ZooKeeper.proto Sat Jul  6 18:51:52 2013
@@ -33,6 +33,10 @@ import "hbase.proto";
 message MetaRegionServer {
   // The ServerName hosting the meta region currently.
   required ServerName server = 1;
+  // The major version of the rpc the server speaks.  This is used so that
+  // clients connecting to the cluster can have prior knowledge of what version
+  // to send to a RegionServer.  AsyncHBase will use this to detect versions.
+  optional uint32 rpcVersion = 2;
 }
 
 /**
@@ -41,6 +45,8 @@ message MetaRegionServer {
 message Master {
   // The ServerName of the current Master
   required ServerName master = 1;
+  // Major RPC version so that clients can know what version the master can accept.
+  optional uint32 rpcVersion = 2;
 }
 
 /**