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都表示顺序