3 源码分析 YCSB的核心类都在Maven子模块core中,主要有Client、ClientThread、CoreWorkload、DB实现类等。
其主流程是:python脚本bin/ycsb会调用Client类的main()方法,初始化Workload和DB的实现类,并根据-threads参数创建多个Client线程,-s参数创建一个Status线程。每个线程会循环recordcount或operationcount(在workloada中定义)除以threads次,并根据参数bin/ycsb load/run决定是初始化数据doInsert()还是执行读写操作doTransaction()。
4 添加新数据库1.新建module:在YCSB根目录pom.xml下添加一个Maven子module,artifactId为xxx-binding(ycsb脚本会根据这个名字后缀扫描jar包,加入到classpath中),而目录名则为前缀xxx。 2.配置pom.xml:打开新建子module的pom.xml,加入<build>一段,这样执行package任务后会在target目录下生成一个包含了所有依赖的大jar包,这是maven-assembly插件的功能。之后将core模块(因为下面我们要继承DB类)和其他所有依赖项添加到pom.xml中。 3.新建DB子类:在此子module中新建package和类,继承DB类。 4.打包module:执行package任务,在target下会生成一个xxx-binding.jar。拷贝到YCSB包下xxx-binding/lib目录下。 5.执行测试:可以通过-db指定我们的DB类,或在ycsb Python脚本中给我们的类加个别名。 文章出自:http://blog.csdn.net/dc_726/article/details/43991871
|