1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.regionserver;
20
21 import java.io.IOException;
22 import java.util.Map;
23 import java.util.Set;
24 import java.util.concurrent.ConcurrentMap;
25
26 import org.apache.hadoop.fs.FileSystem;
27 import org.apache.hadoop.hbase.HBaseInterfaceAudience;
28 import org.apache.hadoop.hbase.HRegionInfo;
29 import org.apache.hadoop.hbase.TableName;
30 import org.apache.hadoop.hbase.classification.InterfaceAudience;
31 import org.apache.hadoop.hbase.classification.InterfaceStability;
32 import org.apache.hadoop.hbase.executor.ExecutorService;
33 import org.apache.hadoop.hbase.ipc.RpcServerInterface;
34 import org.apache.hadoop.hbase.master.TableLockManager;
35 import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
36 import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;
37 import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;
38 import org.apache.hadoop.hbase.wal.WAL;
39 import org.apache.zookeeper.KeeperException;
40
41 import com.google.protobuf.Service;
42
43
44
45
46 @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC)
47 @InterfaceStability.Evolving
48 public interface RegionServerServices extends OnlineRegions, FavoredNodesForRegion {
49
50
51
52 boolean isStopping();
53
54
55
56 WAL getWAL(HRegionInfo regionInfo) throws IOException;
57
58
59
60
61 CompactionRequestor getCompactionRequester();
62
63
64
65
66 FlushRequester getFlushRequester();
67
68
69
70
71 RegionServerAccounting getRegionServerAccounting();
72
73
74
75
76 TableLockManager getTableLockManager();
77
78
79
80
81 RegionServerRpcQuotaManager getRegionServerRpcQuotaManager();
82
83
84
85
86 RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager();
87
88
89
90
91 class PostOpenDeployContext {
92 private final Region region;
93 private final long masterSystemTime;
94
95 @InterfaceAudience.Private
96 public PostOpenDeployContext(Region region, long masterSystemTime) {
97 this.region = region;
98 this.masterSystemTime = masterSystemTime;
99 }
100 public Region getRegion() {
101 return region;
102 }
103 public long getMasterSystemTime() {
104 return masterSystemTime;
105 }
106 }
107
108
109
110
111
112
113
114
115
116 void postOpenDeployTasks(final PostOpenDeployContext context) throws KeeperException, IOException;
117
118
119
120
121
122
123
124
125
126
127 @Deprecated
128 void postOpenDeployTasks(final Region r) throws KeeperException, IOException;
129
130 class RegionStateTransitionContext {
131 private final TransitionCode code;
132 private final long openSeqNum;
133 private final long masterSystemTime;
134 private final HRegionInfo[] hris;
135
136 @InterfaceAudience.Private
137 public RegionStateTransitionContext(TransitionCode code, long openSeqNum, long masterSystemTime,
138 HRegionInfo... hris) {
139 this.code = code;
140 this.openSeqNum = openSeqNum;
141 this.masterSystemTime = masterSystemTime;
142 this.hris = hris;
143 }
144 public TransitionCode getCode() {
145 return code;
146 }
147 public long getOpenSeqNum() {
148 return openSeqNum;
149 }
150 public long getMasterSystemTime() {
151 return masterSystemTime;
152 }
153 public HRegionInfo[] getHris() {
154 return hris;
155 }
156 }
157
158
159
160
161 boolean reportRegionStateTransition(final RegionStateTransitionContext context);
162
163
164
165
166
167 @Deprecated
168 boolean reportRegionStateTransition(TransitionCode code, long openSeqNum, HRegionInfo... hris);
169
170
171
172
173
174 @Deprecated
175 boolean reportRegionStateTransition(TransitionCode code, HRegionInfo... hris);
176
177
178
179
180 RpcServerInterface getRpcServer();
181
182
183
184
185
186 ConcurrentMap<byte[], Boolean> getRegionsInTransitionInRS();
187
188
189
190
191 FileSystem getFileSystem();
192
193
194
195
196 Leases getLeases();
197
198
199
200
201 ExecutorService getExecutorService();
202
203
204
205
206 Map<String, Region> getRecoveringRegions();
207
208
209
210
211
212 public ServerNonceManager getNonceManager();
213
214
215
216
217
218
219
220 boolean registerService(Service service);
221
222
223
224
225 HeapMemoryManager getHeapMemoryManager();
226
227
228
229
230
231
232
233 double getCompactionPressure();
234
235
236
237
238 Set<TableName> getOnlineTables();
239
240
241
242
243 MetricsRegionServer getMetrics();
244 }