# 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): # [= = ... =] # 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},... ={}) 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 ##########################################