zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    数据库mysql的基本操作
    多进程多线程与进程池线程池及协程
    面对对象的属性和方法
    Python中的编码及操作文件
    通过pymysql操作mysql数据库
    Spring注入
    Mybatis标签及使用1
    全局配置文件说明
    类方法和对象方法的区别
    Mybatis
  • 原文地址:https://www.cnblogs.com/bettersky/p/7625583.html
Copyright © 2011-2022 走看看