forked from brianfrankcooper/YCSB
-
Notifications
You must be signed in to change notification settings - Fork 12
/
workload_template
210 lines (162 loc) · 7.15 KB
/
workload_template
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
# Copyright (c) 2012 YCSB contributors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you
# may not use this file except in compliance with the License. You
# may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License. See accompanying
# LICENSE file.
# Yahoo! Cloud System Benchmark
# Workload Template: Default Values
#
# File contains all properties that can be set to define a
# YCSB session. All properties are set to their default
# value if one exists. If not, the property is commented
# out. When a property has a finite number of settings,
# the default is enabled and the alternates are shown in
# comments below it.
#
# Use of most explained through comments in Client.java or
# CoreWorkload.java or on the YCSB wiki page:
# https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties
# Consider one record in a Timeseries Database as following ([] is optional):
# <metric> <timestamp> <value> [<tag1>=<tagvalue1> <tag2>=<tagvalue2> ... <tagN>=<tagvalueN>]
# tagnames will always be TAG1,TAG2,... ,TAGN
# tagvalus will be random strings
# value will be a random double
# metric is defined as 'usermetric'
# timestamp is automatically generated out of long numbers (which represent milliseconds since 1970)
# The name of the workload class to use
workload=com.yahoo.ycsb.workloads.CoreWorkload
# There is no default setting for recordcount but it is
# required to be set.
# The number of records in the table to be inserted in
# the load phase or the number of records already in the
# table before the run phase.
recordcount=1000000
# There is no default setting for operationcount but it is
# required to be set.
# The number of operations to use during the run phase.
operationcount=3000000
# The number of insertions to do, if different from recordcount.
# Used with insertstart to grow an existing table.
#insertcount=
# The begin of the insertion time space (time: Mo 10. Aug 23:10:05 CEST 2015) (inclusive)
insertstart=1439241005000
# The end of the insertion time space (exclusive)
insertend=1439242005000
# Maximum execution time in seconds
#maxexecutiontime=
# How the latency measurements are presented
measurementtype=histogram
#measurementtype=timeseries
# The range of latencies to track in the histogram (milliseconds)
histogram.buckets=1000
# Granularity for time series (in milliseconds)
timeseries.granularity=1000
#### Parameters for CoreWorkload.java ####
# The name of the database metric to run queries against
metric=usermetric
# The number of tags per record
tagcount=3
# The distribution used to choose the length of a tag value
tagvaluelengthdistribution=constant
#tagvaluelengthdistribution=uniform
#tagvaluelengthdistribution=zipfian
# The size of each tag value (in bytes)
tagvaluelength=10
# Prefix for tags (only use A-Z, a-z)
tagprefix=TAG
# Randomly choose tagamount per record between 0 and tagcount if true
randomtagamount=false
# Generate (randomly) predefined set of values for each tag if true
# otherwise if false generate random tagvalues for every record
# (Consider that if you set this to false, than read/sum/avg/scan/count
# will produce strange results, as you then only have 1 record per tag
# and ycsb-ts will do read/sum/scan/count only based on timespan which
# does not reflect the performance of a TSDB in a good way.)
predefinedtagvalues=true
# Amount of randomly generated predefined set of values per Tag
# (Don't set this to high, otherwise you get in the range of 1
# tag per record, see comment on 'predefinedtagvalues' parameter)
predefinedtagvalueamount=100
# Between RUN and LOAD the tags/tagvalues will be temporarly stored in this file
predefinedtagstoragefile=predefinedtags.txt
# Only stores actually used combos, this means that there can't be
# any misses at all while RUN Phase
predefinedtagstoreused=true
# Range between (e.g. sensor-) values can vary
valuemax=10000
valuemin=0
# Filename containing the tag length histogram
# (only used if tagvaluelengthdistribution is "histogram")
#taglengthhistogram=hist.txt
# What proportion of operations are reads
readproportion=1
# What proportion of operations are inserts
insertproportion=0
# What proportion of operations are scans
scanproportion=0
# what proportion of operations should be avg
avgproportion=0
# what proportion of operations should be count
countproportion=0
# what proportion of operations should be sum
sumproportion=0
# which timevalue to use for avg/count/sum,
# zero means return one value over the whole
# timespan used and only use one "bucket" (default: 0)
# other examples:
# 1 ms = return avg/sum/count for every 1 ms in time period used
# 1 s = return avg/sum/count for every 1 s in time perdiod used
timevalue=0
# which timeunit to use for avg/count/sum
# (possible: ms, s, m, h, d)
timeunit=ms
# The distribution of requests across the keyspace (uniform/latest)
requestdistribution=uniform
# On a single scan/avg/count/sum, the maximum period (in milliseconds) to access
maxscanlength=1000
# On a single scan/avg/count/sum, the maximum period (in milliseconds) to access
minscanlength=500
# The distribution used to choose the period (in milliseconds) to access on a scan/avg/count/sum
scanlengthdistribution=uniform
# should there be more than one value per timestamp possible. Has no effect if randomamountperts=tsrandom.
# (e.g two sensors at the same time with different tags?)
maxrecordsperts=10
# tsrandom, random or constant? random: 1 to maxrecordsperts records for every timestamp, constant:
# always maxrecordsperts records per timestamp, tsrandom: randomly choose timestamp and add value
# (when using tsrandom recordamount between 0 to recordcount per timestamp (maxrecordsperts has no effect))
randomamountperts=constant
#randomamountperts=tsrandom
#randomamountperts=random
# when set to true and using randomamountperts = tsrandom, every timestamp will at least have 1 record after Load Phase
# (Benchmarking will be wrong and recordcount must be greater than (insertstart-insertend)
# Consider that it can happen that there are Zero values when using randomamountperts=tsrandom without flooring
randomfloorfilling=false
# for read/scan/avg/count/sum: how many tagvalues should be given for each tag to look for?
# (it will be randomly chosed how many tags are used and for each tag randomly between 1
# and querymaxtagvalues how many tagvalues)
# e.g. (scan TAG1={1,2,3}, TAG2={1.2},... <tag>={<tagvalues>})
querymaxtagvalues=10
# don't use tags for read, as it is quite hopeless (searching for one timestamp
# and matching the right tags -> not really possible)
notagsforread=true
# Read from values from csv file
readfromcsv=false
# Path to csv file
csvfile=values.csv
# Buffer size for csv reader
csvbuffersize=100000
# Description for the workload
description=Workloaddescription
# Size of one timestep in milliseconds
# 1 = 1 ms, 1000 = 1 s,..
timeresolution=1000
##########################################