ycsb-命令及参数-与生成的负载类型相关

时间:2022-05-05 09:25:28

load
bin/ycsb load mydb -P workloads/workloada -p "mydb.host=127.0.0.1" -p "mydb.port=1111" -p "recordcount=100" -p "operationcount=200" -p "insertorder=sorted"  -p "requestdistribution=zipfian"

run
bin/ycsb run mydb -P workloads/workloada -p "mydb.host=127.0.0.1" -p "mydb.port=1111" -p "recordcount=100" -p "operationcount=200"  -p "insertorder=sorted" -p  "requestdistribution=zipfian"

总结:
-P workloads/workloada是必须的,但是其内容可以被 -p 参数覆盖。
recordcount在load时的条目。operationcount表明run时的条目。
insertorder表示load时的分布。requestdistribution表示run时的分布。

但是,与load相关的参数都会影响到run时的行为。
比如load时使用顺序插入,那么run时有顺序插入参数时就会考虑数据集是以此生成的。

operationcount 与load 无关, "requestdistribution=zipfian" 与load无关,load始终使用 uniform 的形式生成负载

load时,如果-p "insertorder=sorted", 那么ycsb生成的模式为 userxxyy,其中xx即为顺序的数值,从0一直到recordcount-1, yy是一串数字,这串数字与xx有关,所有位数相同的xx其yy是一样的,最终组成的key具有相同的长度。

这样组成的key序列并不是真正有序的。甚至会生成重复的key。

比如key 1和key 18 分别是 user1863145027629296129  user1863145027629296129 但是很显然结果是相同的key。

"insertorder=sorted" 中 sorted 和ordered都表示顺序