View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.hadoop.hbase.coordination;
19  
20  import java.io.IOException;
21  
22  import org.apache.hadoop.hbase.classification.InterfaceAudience;
23  import org.apache.hadoop.hbase.CoordinatedStateException;
24  import org.apache.hadoop.hbase.CoordinatedStateManager;
25  import org.apache.hadoop.hbase.Server;
26  import org.apache.hadoop.hbase.TableStateManager;
27  import org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs;
28  import org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs;
29  
30  /**
31   * Base class for {@link org.apache.hadoop.hbase.CoordinatedStateManager} implementations.
32   * Defines methods to retrieve coordination objects for relevant areas. CoordinatedStateManager
33   * reference returned from Server interface has to be casted to this type to
34   * access those methods.
35   */
36  @InterfaceAudience.Private
37  public abstract class BaseCoordinatedStateManager implements CoordinatedStateManager {
38  
39    @Override
40    public void initialize(Server server) {
41    }
42  
43    @Override
44    public void start() {
45    }
46  
47    @Override
48    public void stop() {
49    }
50  
51    @Override
52    public Server getServer() {
53      return null;
54    }
55  
56    @Override
57    public abstract TableStateManager getTableStateManager() throws InterruptedException,
58      CoordinatedStateException;
59    /**
60     * Method to retrieve coordination for split log worker
61     */
62    public abstract  SplitLogWorkerCoordination getSplitLogWorkerCoordination();
63    /**
64     * Method to retrieve coordination for split log manager
65     */
66    public abstract SplitLogManagerCoordination getSplitLogManagerCoordination();
67    /**
68     * Method to retrieve coordination for split transaction.
69     */
70    abstract public SplitTransactionCoordination getSplitTransactionCoordination();
71  
72    /**
73     * Method to retrieve coordination for closing region operations.
74     */
75    public abstract CloseRegionCoordination getCloseRegionCoordination();
76  
77    /**
78     * Method to retrieve coordination for opening region operations.
79     */
80    public abstract OpenRegionCoordination getOpenRegionCoordination();
81  
82    /**
83     * Method to retrieve coordination for region merge transaction
84     */
85    public abstract  RegionMergeCoordination getRegionMergeCoordination();
86  
87    /**
88     * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs}
89     */
90    public abstract ProcedureCoordinatorRpcs
91    getProcedureCoordinatorRpcs(String procType, String coordNode) throws IOException;
92  
93    /**
94     * Method to retrieve {@link org.apache.hadoop.hbase.procedure.ProcedureMemberRpc}
95     */
96    public abstract ProcedureMemberRpcs
97    getProcedureMemberRpcs(String procType) throws IOException;
98  }