1 /** 2 * Copyright 2010 The Apache Software Foundation 3 * 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 package org.apache.hadoop.hbase.ipc; 22 23 import org.apache.hadoop.ipc.VersionedProtocol; 24 25 /** 26 * There is one version id for all the RPC interfaces. If any interface 27 * is changed, the versionID must be changed here. 28 */ 29 public interface HBaseRPCProtocolVersion extends VersionedProtocol { 30 /** 31 * Interface version. 32 * 33 * HMasterInterface version history: 34 * <ul> 35 * <li>Version was incremented to 2 when we brought the hadoop RPC local to 36 * hbase HADOOP-2495</li> 37 * <li>Version was incremented to 3 when we changed the RPC to send codes 38 * instead of actual class names (HADOOP-2519).</li> 39 * <li>Version 4 when we moved to all byte arrays (HBASE-42).</li> 40 * <li>Version 5 HBASE-576.</li> 41 * <li>Version 6 modifyTable.</li> 42 * </ul> 43 * <p>HMasterRegionInterface version history: 44 * <ul> 45 * <li>Version 2 was when the regionServerStartup was changed to return a 46 * MapWritable instead of a HbaseMapWritable as part of HBASE-82 changes.</li> 47 * <li>Version 3 was when HMsg was refactored so it could carry optional 48 * messages (HBASE-504).</li> 49 * <li>HBASE-576 we moved this to 4.</li> 50 * </ul> 51 * <p>HRegionInterface version history: 52 * <ul> 53 * <li>Upped to 5 when we added scanner caching</li> 54 * <li>HBASE-576, we moved this to 6.</li> 55 * </ul> 56 * <p>TransactionalRegionInterface version history: 57 * <ul> 58 * <li>Moved to 2 for hbase-576.</li> 59 * </ul> 60 * <p>Unified RPC version number history: 61 * <ul> 62 * <li>Version 10: initial version (had to be > all other RPC versions</li> 63 * <li>Version 11: Changed getClosestRowBefore signature.</li> 64 * <li>Version 12: HServerLoad extensions (HBASE-1018).</li> 65 * <li>Version 13: HBASE-847</li> 66 * <li>Version 14: HBASE-900</li> 67 * <li>Version 15: HRegionInterface.exists</li> 68 * <li>Version 16: Removed HMasterRegionInterface.getRootRegionLocation and 69 * HMasterInterface.findRootRegion. We use ZooKeeper to store root region 70 * location instead.</li> 71 * <li>Version 17: Added incrementColumnValue.</li> 72 * <li>Version 18: HBASE-1302.</li> 73 * <li>Version 19: Added getClusterStatus().</li> 74 * <li>Version 20: Backed Transaction HBase out of HBase core.</li> 75 * <li>Version 21: HBASE-1665.</li> 76 * <li>Version 22: HBASE-2209. Added List support to RPC</li> 77 * <li>Version 23: HBASE-2066, multi-put.</li> 78 * <li>Version 24: HBASE-2473, create table with regions.</li> 79 * <li>Version 25: Added openRegion and Stoppable/Abortable to API.</li> 80 * <li>Version 26: New master and Increment, 0.90 version bump.</li> 81 * <li>Version 27: HBASE-3168, Added serverCurrentTime to regionServerStartup 82 * in HMasterRegionInterface.</li> 83 * </ul> 84 */ 85 public static final long versionID = 27L; 86 }