View Javadoc

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 &gt 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  }