1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.client;
19
20 import org.apache.commons.lang.mutable.MutableBoolean;
21 import org.apache.hadoop.hbase.ServerName;
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23
24 @InterfaceAudience.Private
25 class FastFailInterceptorContext extends
26 RetryingCallerInterceptorContext {
27
28
29
30 private MutableBoolean couldNotCommunicateWithServer = new MutableBoolean(false);
31
32
33 private MutableBoolean guaranteedClientSideOnly = new MutableBoolean(false);
34
35
36 private boolean didTry = false;
37
38
39
40 private FailureInfo fInfo = null;
41
42
43
44
45
46 private boolean retryDespiteFastFailMode = false;
47
48
49 private ServerName server;
50
51
52 private int tries;
53
54 public MutableBoolean getCouldNotCommunicateWithServer() {
55 return couldNotCommunicateWithServer;
56 }
57
58 public MutableBoolean getGuaranteedClientSideOnly() {
59 return guaranteedClientSideOnly;
60 }
61
62 public FailureInfo getFailureInfo() {
63 return fInfo;
64 }
65
66 public ServerName getServer() {
67 return server;
68 }
69
70 public int getTries() {
71 return tries;
72 }
73
74 public boolean didTry() {
75 return didTry;
76 }
77
78 public boolean isRetryDespiteFastFailMode() {
79 return retryDespiteFastFailMode;
80 }
81
82 public void setCouldNotCommunicateWithServer(
83 MutableBoolean couldNotCommunicateWithServer) {
84 this.couldNotCommunicateWithServer = couldNotCommunicateWithServer;
85 }
86
87 public void setGuaranteedClientSideOnly(MutableBoolean guaranteedClientSideOnly) {
88 this.guaranteedClientSideOnly = guaranteedClientSideOnly;
89 }
90
91 public void setDidTry(boolean didTry) {
92 this.didTry = didTry;
93 }
94
95 public void setFailureInfo(FailureInfo fInfo) {
96 this.fInfo = fInfo;
97 }
98
99 public void setRetryDespiteFastFailMode(boolean retryDespiteFastFailMode) {
100 this.retryDespiteFastFailMode = retryDespiteFastFailMode;
101 }
102
103 public void setServer(ServerName server) {
104 this.server = server;
105 }
106
107 public void setTries(int tries) {
108 this.tries = tries;
109 }
110
111 public void clear() {
112 server = null;
113 fInfo = null;
114 didTry = false;
115 couldNotCommunicateWithServer.setValue(false);
116 guaranteedClientSideOnly.setValue(false);
117 retryDespiteFastFailMode = false;
118 tries = 0;
119 }
120
121 public FastFailInterceptorContext prepare(RetryingCallable<?> callable) {
122 return prepare(callable, 0);
123 }
124
125 public FastFailInterceptorContext prepare(RetryingCallable<?> callable,
126 int tries) {
127 if (callable instanceof RegionServerCallable) {
128 RegionServerCallable<?> retryingCallable = (RegionServerCallable<?>) callable;
129 server = retryingCallable.getLocation().getServerName();
130 }
131 this.tries = tries;
132 return this;
133 }
134 }