YCSB-mapkeer-leveldb实测

使用thrift0.8.0编译好java版的mapkeeper并安装到ycsb下,使用thrift0.9.2编译好c++版的mapkeeper并编译leveldb客户端运行。

测试成功。recordcount设置为10m,发现leveldb开始会不断往log里写,log已经达到了1GB多。然后突然有很多2MB的sst文件生成。

最终ycsb完成了,iostat还有io (持续较长时间,几十MB/s或零点几MB/s)。data目录下有16GB,log文件600MB, 

YCSB :

[OVERALL], RunTime(ms), 699722.0
[OVERALL], Throughput(ops/sec), 14291.390009175073

1. 在mapkeeper/leveldb下的server代码中做标注,发现ycsb的load请求都被这里的insert函数处理。

      使用 -i参数运行,blindinsert是1,默认syncmode是0.

2. 默认key如 user4997031639252970821 ,默认value是1080字节。使用 -p "fieldlength=xx"可以设置value值,但实际的value值是80+10*xx. 即如果设置fieldlength为10,则value为180,如果设置为100,则为1080.

    使用 -p "fieldlengthdistribution=uniform" 设置value的大小为变化的,还可以zipfan,但是注意这只影响xx,不影响80.   参考https://github.com/brianfrankcooper/YCSB/issues/587

将value设置为1经过打印发现value是这样的

   value=field1 2    field0 : field7 , field6 0 field9 4 field8 7 field3 / field2 *    field5 5 field4 8

所以说,默认有10个field,这10个field一起组成了value。这就是为什么最终的value值要乘以10了。

使用 -p fieldcount=1 来限定只要一个filed。

原文地址:https://www.cnblogs.com/bettersky/p/7625583.html