1
2
3
4
5
6
7
8
9
10
11
12 package org.apache.hadoop.hbase.client;
13
14 import org.apache.hadoop.conf.Configuration;
15 import org.apache.hadoop.hbase.HConstants;
16 import org.apache.hadoop.hbase.classification.InterfaceAudience;
17
18 import com.google.common.annotations.VisibleForTesting;
19
20
21
22
23
24
25
26
27
28 @InterfaceAudience.Private
29 public class ConnectionConfiguration {
30
31 public static final String WRITE_BUFFER_SIZE_KEY = "hbase.client.write.buffer";
32 public static final long WRITE_BUFFER_SIZE_DEFAULT = 2097152;
33 public static final String MAX_KEYVALUE_SIZE_KEY = "hbase.client.keyvalue.maxsize";
34 public static final int MAX_KEYVALUE_SIZE_DEFAULT = -1;
35
36 private final long writeBufferSize;
37 private final int metaOperationTimeout;
38 private final int operationTimeout;
39 private final int scannerCaching;
40 private final long scannerMaxResultSize;
41 private final int primaryCallTimeoutMicroSecond;
42 private final int replicaCallTimeoutMicroSecondScan;
43 private final int metaReplicaCallTimeoutMicroSecondScan;
44 private final int retries;
45 private final int maxKeyValueSize;
46
47
48
49
50
51 ConnectionConfiguration(Configuration conf) {
52 this.writeBufferSize = conf.getLong(WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);
53
54 this.metaOperationTimeout = conf.getInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,
55 HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
56
57 this.operationTimeout = conf.getInt(
58 HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
59
60 this.scannerCaching = conf.getInt(
61 HConstants.HBASE_CLIENT_SCANNER_CACHING, HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING);
62
63 this.scannerMaxResultSize =
64 conf.getLong(HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,
65 HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);
66
67 this.primaryCallTimeoutMicroSecond =
68 conf.getInt("hbase.client.primaryCallTimeout.get", 10000);
69
70 this.replicaCallTimeoutMicroSecondScan =
71 conf.getInt("hbase.client.replicaCallTimeout.scan", 1000000);
72
73 this.metaReplicaCallTimeoutMicroSecondScan =
74 conf.getInt(HConstants.HBASE_CLIENT_MEAT_REPLICA_SCAN_TIMEOUT,
75 HConstants.HBASE_CLIENT_MEAT_REPLICA_SCAN_TIMEOUT_DEFAULT);
76
77 this.retries = conf.getInt(
78 HConstants.HBASE_CLIENT_RETRIES_NUMBER, HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);
79
80 this.maxKeyValueSize = conf.getInt(MAX_KEYVALUE_SIZE_KEY, MAX_KEYVALUE_SIZE_DEFAULT);
81 }
82
83
84
85
86
87
88 @VisibleForTesting
89 protected ConnectionConfiguration() {
90 this.writeBufferSize = WRITE_BUFFER_SIZE_DEFAULT;
91 this.metaOperationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;
92 this.operationTimeout = HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT;
93 this.scannerCaching = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING;
94 this.scannerMaxResultSize = HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE;
95 this.primaryCallTimeoutMicroSecond = 10000;
96 this.replicaCallTimeoutMicroSecondScan = 1000000;
97 this.metaReplicaCallTimeoutMicroSecondScan =
98 HConstants.HBASE_CLIENT_MEAT_REPLICA_SCAN_TIMEOUT_DEFAULT;
99 this.retries = HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER;
100 this.maxKeyValueSize = MAX_KEYVALUE_SIZE_DEFAULT;
101 }
102
103 public long getWriteBufferSize() {
104 return writeBufferSize;
105 }
106
107 public int getMetaOperationTimeout() {
108 return metaOperationTimeout;
109 }
110
111 public int getOperationTimeout() {
112 return operationTimeout;
113 }
114
115 public int getScannerCaching() {
116 return scannerCaching;
117 }
118
119 public int getPrimaryCallTimeoutMicroSecond() {
120 return primaryCallTimeoutMicroSecond;
121 }
122
123 public int getReplicaCallTimeoutMicroSecondScan() {
124 return replicaCallTimeoutMicroSecondScan;
125 }
126
127 public int getMetaReplicaCallTimeoutMicroSecondScan() {
128 return metaReplicaCallTimeoutMicroSecondScan;
129 }
130
131 public int getRetriesNumber() {
132 return retries;
133 }
134
135 public int getMaxKeyValueSize() {
136 return maxKeyValueSize;
137 }
138
139 public long getScannerMaxResultSize() {
140 return scannerMaxResultSize;
141 }
142 }