1 /**
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 package org.apache.hadoop.hbase.executor;
21 
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23 
24 /**
25  * The following is a list of all executor types, both those that run in the
26  * master and those that run in the regionserver.
27  */
28 @InterfaceAudience.Private
29 public enum ExecutorType {
30 
31   // Master executor services
32   MASTER_CLOSE_REGION        (1),
33   MASTER_OPEN_REGION         (2),
34   MASTER_SERVER_OPERATIONS   (3),
35   MASTER_TABLE_OPERATIONS    (4),
36   MASTER_RS_SHUTDOWN         (5),
37   MASTER_META_SERVER_OPERATIONS (6),
38   M_LOG_REPLAY_OPS           (7),
39 
40   // RegionServer executor services
41   RS_OPEN_REGION             (20),
42   RS_OPEN_ROOT               (21),
43   RS_OPEN_META               (22),
44   RS_CLOSE_REGION            (23),
45   RS_CLOSE_ROOT              (24),
46   RS_CLOSE_META              (25),
47   RS_PARALLEL_SEEK           (26),
48   RS_LOG_REPLAY_OPS          (27),
49   RS_REGION_REPLICA_FLUSH_OPS  (28);
50 
ExecutorType(int value)51   ExecutorType(int value) {}
52 
53   /**
54    * @param serverName
55    * @return Conflation of the executor type and the passed servername.
56    */
getExecutorName(String serverName)57   String getExecutorName(String serverName) {
58     return this.toString() + "-" + serverName.replace("%", "%%");
59   }
60 }
61