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 * </ul>
80 */
81 public static final long versionID = 24L;
82 }