View Source

The workload client must make many random choices when generating load: which operation to perform (Add, Set, Insert, Read), which records to scan, and so on. These decisions are governed by random distributions. YCSB has several built-in distributions.

*{_}Uniform{_}*: Choose an item at random. For example, when choosing a record, all records in the database are equally likely.



Specified by the property: requestdistribution=uniform

*{_}Zipfian{_}*: Choose an item according to the Zipfian distribution. For example, when choosing a record, some records will be extremely popular (the head of the distribution) while most of the records will be unpopular (the tail of the distribution).



Specified by the property: requestdistribution=zipfian

*{_}Latest{_}*: Like the Zipfian distribution, except the most recently inserted records are at the head of the distribution.



Specified by the property: requestdistribution=latest

*{_}Multinomial{_}*: Probabilities for each item can be specified. For example we might assign a probability of .95 to the Read operation and a probability of .05 to the Update operation, and a probability of 0 to Scan and Insert. The result would be a read heavy workload.



Specified by the property: requestdistribution=multinomial

*{_}Churn{_}*: Defines a working set and more items in and out of the working set at a given rate.

Specified by the property: requestdistribution=churn