1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.client.backoff;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22 import org.apache.hadoop.conf.Configuration;
23 import org.apache.hadoop.hbase.ServerName;
24 import org.apache.hadoop.hbase.classification.InterfaceAudience;
25 import org.apache.hadoop.hbase.classification.InterfaceStability;
26 import org.apache.hadoop.hbase.util.ReflectionUtils;
27
28 @InterfaceAudience.Private
29 @InterfaceStability.Evolving
30 public final class ClientBackoffPolicyFactory {
31
32 private static final Log LOG = LogFactory.getLog(ClientBackoffPolicyFactory.class);
33
34 private ClientBackoffPolicyFactory() {
35 }
36
37 public static ClientBackoffPolicy create(Configuration conf) {
38
39 String className =
40 conf.get(ClientBackoffPolicy.BACKOFF_POLICY_CLASS, NoBackoffPolicy.class
41 .getName());
42 return ReflectionUtils.instantiateWithCustomCtor(className,
43 new Class<?>[] { Configuration.class }, new Object[] { conf });
44 }
45
46
47
48
49 public static class NoBackoffPolicy implements ClientBackoffPolicy {
50 public NoBackoffPolicy(Configuration conf){
51
52 }
53
54 @Override
55 public long getBackoffTime(ServerName serverName, byte[] region, ServerStatistics stats) {
56 return 0;
57 }
58 }
59 }