-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.go
233 lines (220 loc) · 10.4 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
package yabf
const (
// DBWrapper
PropertyReportLatencyForEachError = "reportlatencyforeacherror"
PropertyReportLatencyForEachErrorDefault = "false"
PropertyLatencyTrackedErrors = "latencytrackederrors"
// GoodBadUglyDB
SimulateDelay = "gbudb.delays"
SimulateDelayDefault = "200,1000,10000,50000,100000"
// BasicDB
ConfigSimulateDelay = "basicdb.simulatedelay"
ConfigSimulateDelayDefault = "0"
ConfigRandomizeDelay = "basicdb.randomizedelay"
ConfigRandomizeDelayDefault = "true"
// Client
// The number of records to load into the database initially.
PropertyRecordCount = "recordcount"
// The default value of `PropertyRecordCount`
PropertyRecordCountDefault = "0"
// The target number of operations to perform.
PropertyOperationCount = "operationcount"
PropertyOperationCountDefault = "0"
// The workload class to be loaded.
PropertyWorkload = "workload"
// The database class to be used.
PropertyDB = "db"
PropertyDBDefault = "basic"
// The exporter class to be used. The default is TestMeasurementExporter.
PropertyExporter = "exporter"
PropertyExporterDefault = "TextMeasurementExporter"
// If set to the path of a file, this file will be written instead of stdout.
PropertyExportFile = "exportfile"
// The number of client goroutines to run.
PropertyThreadCount = "threadcount"
PropertyThreadCountDefault = "1"
// Indicates how many inserts to do, if less than `recordcount`.
// Useful for partitioning the load among multiple servers, if the Client
// is the bottleneck. Additionally, workloads should support the
// "insertstart" property, which tells them which record to start at.
PropertyInsertCount = "insertcount"
// Target number of operations per second
PropertyTarget = "target"
PropertyTargetDefault = "0"
// The maximum amount of time (in seconds) for which the benchmark will be run.
PropertyMaxExecutionTime = "maxexecutiontime"
PropertyMaxExecutionTimeDefault = "0"
// Whether or not this is the transaction phase (run) or not (load).
PropertyTransactions = "dotransactions"
PropertyStatusInterval = "status.interval"
PropertyStatusIntervalDefault = "10"
// workload
PropertyInsertStart = "insertstart"
PropertyInsertStartDefault = "0"
// The name of the database table to run queries against.
PropertyTableName = "table"
// The default value of `PropertyTableName`
PropertyTableNameDefault = "usertable"
// The name of property for the number of fields in a record
PropertyFieldCount = "fieldcount"
// The default value of `PropertyFieldCount`.
PropertyFieldCountDefault = "10"
PropertyFieldPrefix = "fieldprefix"
PropertyFieldPrefixDefault = "field"
// The name of the property for the field length distribution.
// Options are "uniform", "zipfian"(favoring short records), "constant",
// and "histogram".
// If "uniform", "zipfian" or "constant", the maximum field length will
// be that specified by the fieldlength property. If "histogram", then
// the histogram will be read from the filename specified in the
// "fieldlengthhistogram" property.
PropertyFieldLengthDistribution = "fieldlengthdistribution"
// The default value of `PropertyFieldLengthDistribution`
PropertyFieldLengthDistributionDefault = "constant"
// The name of the property for the length of a field in bytes.
PropertyFieldLength = "fieldlength"
// The default value of `PropertyFieldLength`
PropertyFieldLengthDefault = "100"
// The name of a property that specifies the filename containing the field
// length histogram (only used if fieldlengthdistribution is "histogram").
PropertyFieldLengthHistogramFile = "fieldlengthhistogram"
// The default value of `PropertyFieldLengthHistogramFile`
PropertyFieldLengthHistogramFileDefault = "hist.txt"
// The prefix of key
PropertyKeyPrefix = "keyprefix"
// The default value of `PropertyKeyPrefix`
PropertyKeyPrefixDefault = "user"
// The name of the property for deciding whether to read one field (false)
// or all fields (true) of a record.
PropertyReadAllFields = "readallfields"
// The default value of `PropertyReadAllFields`
PropertyReadAllFieldsDefault = "true"
// The name of the property for deciding whether to write one field (false)
// or all fields (true) of a record.
PropertyWriteAllFields = "writeallfields"
// The default value of `PropertyWriteAllFields`
PropertyWriteAllFieldsDefault = "false"
// The name of the property for deciding whether to check all returned
// data against the formation template to ensure data integrity.
PropertyDataIntegrity = "dataintegrity"
// The default value of `PropertyDataIntegrity`
PropertyDataIntegrityDefault = "false"
// The name of the property for the proportion of transactions
// that are reads.
PropertyReadProportion = "readproportion"
// The default value of `PropertyReadProportion`
PropertyReadProportionDefault = "0.95"
// The name of the property for proportion of transactions
// that are updates.
PropertyUpdateProportion = "updateproportion"
// The default value of `PropertyUpdateProportion`
PropertyUpdateProportionDefault = "0.05"
// The name of the property for proportion of transactions
// that are inserts.
PropertyInsertProportion = "insertproportion"
// The default value of `PropertyInsertProportion`
PropertyInsertProportionDefault = "0.0"
// The name of the property for proportion of transactions
// that are scans.
PropertyScanProportion = "scanproportion"
// The default value of `PropertyScanProportion`
PropertyScanProportionDefault = "0.0"
// The name of the property for proportion of transcations
// that are read-modify-write.
PropertyReadModifyWriteProportion = "readmodifywriteproportion"
// The default value of `PropertyReadModifyWriteProportion`
PropertyReadModifyWriteProportionDefault = "0.0"
// The name of the property for the distribution of requests
// across the keyspace. Options are "uniform", "zipfian" and "latest"
PropertyRequestDistribution = "requestdistribution"
// The default value of `PropertyRequestDistribution`
PropertyRequestDistributionDefault = "uniform"
// The name of the property for the max scan length (number of records)
PropertyMaxScanLength = "maxscanlength"
// The default max scan length
PropertyMaxScanLengthDefault = "1000"
// The name of the property for the scan length distribution.
// Options are "uniform" and "zipfian" (favoring short scans)
PropertyScanLengthDistribution = "scanlengthdistribution"
// The default value of `PropertyScanLengthDistribution`
PropertyScanLengthDistributionDefault = "uniform"
// The name of the property for the order to insert records.
// Options are "ordered" or "hashed"
PropertyInsertOrder = "insertorder"
// The default value of `PropertyInsertOrder`
PropertyInsertOrderDefault = "hashed"
// Percentage data items that constitute the hot set.
HotspotDataFraction = "hotspotdatafraction"
// The default value of `HotspotDataFraction`
HotspotDataFractionDefault = "0.2"
// Percentage operations that access the hot set.
HotspotOpnFraction = "hotspotopnfraction"
// The default value of `HotspotOpnFraction`
HotspotOpnFractionDefault = "0.8"
// How many times to retry when insertion of a single item to a DB fails.
InsertionRetryLimit = "core_workload_insertion_retry_limit"
// The default value of `InsertionRetryLimit`
InsertionRetryLimitDefault = "0"
// On average, how long to wait between the retries, in seconds.
InsertionRetryInterval = "core_workload_insertion_retry_interval"
// The default value of `InsertionRetryInterval`
InsertionRetryIntervalDefault = "3"
PropertyStorageAge = "storageages"
PropertyStorageAgeDefault = "10"
PropertyDiskSize = "disksize"
PropertyDiskSizeDefault = "100000000"
PropertyOccupancy = "occupancy"
PropertyOccupancyDefault = "0.9"
// measurement
PropertyMeasurementType = "measurementtype"
PropertyMeasurementTypeDefault = "hdrhistogram"
PropertyMeasurementInterval = "measurement.interval"
PropertyMeasurementIntervalDefault = "op"
// Granularity for time series; measurements will be averaged in chunks of
// this granularity. Units are milliseconds.
PropertyGranularity = "timeseries.granularity"
PropertyGranularityDefault = "1000"
// Optionally, user can configure an output file to save the raw
// data points. Default is none, raw results will be written to stdout.
OutputFilePath = "measurement.raw.output_file"
OutputFilePathDefault = ""
// Optionally, user can request to not output summary stats. This is
// useful if the user chains the raw measurement type behind the
// HdrHistogram type which already outputs summary stats. But even in
// that case, the user may still want this class to compute summary stats
// for them, especially if they want accurate computation of percentiles
// (because percentiles computed by histogram classes are still
// approximations).
NoSummaryStats = "measurement.raw.no_summary"
NoSummaryStatsDefault = "false"
Buckets = "histogram.buckets"
BucketsDefault = "1000"
// The name of the property for deciding what percentile values to output.
PropertyPercentiles = "hdrhistogram.percentiles"
// The default value of `PropertyPercentiles`
PropertyPercentilesDefault = "95,99"
// The name of the property that specifies the output filename of hdrhistogram
PropertyHdrHistogramOutput = "hdrhistogram.fileoutput"
// The default value of `PropertyHdrHistogramOutput`
PropertyHdrHistogramOutputDefault = "false"
PropertyHdrHistogramOutputPath = "hdrhistogram.output.path"
// The default value of `PropertyHdrHistogramOutputPath`
PropertyHdrHistogramOutputPathDefault = ""
// The max value of hdrhistogram
PropertyHdrHistogramMax = "hdrhistogram.max"
// The default value of `PropertyHdrHistogramMax`, which is 2 seconds in unit ms.
PropertyHdrHistogramMaxDefault = "2000000"
// The number of significant value digits in hdrhistogram
PropertyHdrHistogramSig = "hdrhistogram.sig"
// The default value of `PropertyHdrHistogramSig`
PropertyHdrHistogramSigDefault = "3"
// generator
// What percentage of the readings should be within the most recent
// exponential.fracportion of the dataset?
PropertyExponentialPercentile = "exponential.percentile"
PropertyExponentialPercentileDefault = "95"
// What fraction of the dataset should be accessed exponential.percentile
// of the time?
PropertyExponentialFraction = "exponential.frac"
PropertyExponentialFractionDefault = "0.8571428571" // 1/7
)