1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.omid.tso;
19
20 import org.apache.phoenix.thirdparty.com.google.common.annotations.VisibleForTesting;
21 import com.google.inject.Module;
22
23 import org.apache.omid.NetworkUtils;
24 import org.apache.omid.YAMLUtils;
25 import org.apache.omid.metrics.MetricsRegistry;
26 import org.apache.omid.tools.hbase.SecureHBaseConfig;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30
31
32
33
34 @SuppressWarnings("all")
35 public class TSOServerConfig extends SecureHBaseConfig {
36
37 private static final Logger LOG = LoggerFactory.getLogger(TSOServerConfig.class);
38
39 private static final String CONFIG_FILE_NAME = "omid-server-configuration.yml";
40 private static final String DEFAULT_CONFIG_FILE_NAME = "default-omid-server-configuration.yml";
41
42 public static enum WAIT_STRATEGY {
43 HIGH_THROUGHPUT,
44 LOW_CPU
45 };
46
47 public static enum TIMESTAMP_TYPE {
48 INCREMENTAL,
49 WORLD_TIME
50 };
51
52
53
54
55 public TSOServerConfig() {
56 this(CONFIG_FILE_NAME);
57 }
58
59 @VisibleForTesting
60 TSOServerConfig(String configFileName) {
61 new YAMLUtils().loadSettings(configFileName, DEFAULT_CONFIG_FILE_NAME, this);
62 }
63
64
65
66
67
68 private Module timestampStoreModule;
69
70 private Module commitTableStoreModule;
71
72 private Module leaseModule;
73
74 private int port;
75
76 private MetricsRegistry metrics;
77
78 private int conflictMapSize;
79
80 private int numConcurrentCTWriters;
81
82 private int batchSizePerCTWriter;
83
84 private int batchPersistTimeoutInMs;
85
86 private String waitStrategy;
87
88 private String networkIfaceName = NetworkUtils.getDefaultNetworkInterface();
89
90 private String timestampType;
91
92 private Boolean lowLatency;
93
94 public boolean monitorContext;
95
96 public boolean getMonitorContext() {
97 return monitorContext;
98 }
99
100 public void setMonitorContext(boolean monitorContext) {
101 this.monitorContext = monitorContext;
102 }
103
104 public Boolean getLowLatency() {
105 return lowLatency;
106 }
107
108 public void setLowLatency(Boolean lowLatency) {
109 this.lowLatency = lowLatency;
110 }
111
112 public int getPort() {
113 return port;
114 }
115
116 public void setPort(int port) {
117 this.port = port;
118 }
119
120 public int getConflictMapSize() {
121 return conflictMapSize;
122 }
123
124 public void setConflictMapSize(int conflictMapSize) {
125 this.conflictMapSize = conflictMapSize;
126 }
127
128 public int getNumConcurrentCTWriters() {
129 return numConcurrentCTWriters;
130 }
131
132 public void setNumConcurrentCTWriters(int numConcurrentCTWriters) {
133 this.numConcurrentCTWriters = numConcurrentCTWriters;
134 }
135
136 public int getBatchSizePerCTWriter() {
137 return batchSizePerCTWriter;
138 }
139
140 public void setBatchSizePerCTWriter(int batchSizePerCTWriter) {
141 this.batchSizePerCTWriter = batchSizePerCTWriter;
142 }
143
144 public int getBatchPersistTimeoutInMs() {
145 return batchPersistTimeoutInMs;
146 }
147
148 public void setBatchPersistTimeoutInMs(int value) {
149 this.batchPersistTimeoutInMs = value;
150 }
151
152 public String getNetworkIfaceName() {
153 return networkIfaceName;
154 }
155
156 public void setNetworkIfaceName(String networkIfaceName) {
157 this.networkIfaceName = networkIfaceName;
158 }
159
160 public String getTimestampType() {
161 return timestampType;
162 }
163
164 public void setTimestampType(String type) {
165 this.timestampType = type;
166 }
167
168 public TIMESTAMP_TYPE getTimestampTypeEnum() {
169 return TSOServerConfig.TIMESTAMP_TYPE.valueOf(timestampType);
170 }
171
172 public Module getTimestampStoreModule() {
173 return timestampStoreModule;
174 }
175
176 public void setTimestampStoreModule(Module timestampStoreModule) {
177 this.timestampStoreModule = timestampStoreModule;
178 }
179
180 public Module getCommitTableStoreModule() {
181 return commitTableStoreModule;
182 }
183
184 public void setCommitTableStoreModule(Module commitTableStoreModule) {
185 this.commitTableStoreModule = commitTableStoreModule;
186 }
187
188 public Module getLeaseModule() {
189 return leaseModule;
190 }
191
192 public void setLeaseModule(Module leaseModule) {
193 this.leaseModule = leaseModule;
194 }
195
196 public MetricsRegistry getMetrics() {
197 return metrics;
198 }
199
200 public void setMetrics(MetricsRegistry metrics) {
201 this.metrics = metrics;
202 }
203
204 public String getWaitStrategy() {
205 return waitStrategy;
206 }
207
208 public WAIT_STRATEGY getWaitStrategyEnum() {
209 return TSOServerConfig.WAIT_STRATEGY.valueOf(waitStrategy);
210 }
211
212 public void setWaitStrategy(String waitStrategy) {
213 this.waitStrategy = waitStrategy;
214 }
215 }