YCSB测试levedb

参考文献:

上述两个参考文献提出两种思路利用YCSB对leveldb进行测试,本质上均是将YCSB作为客户端,leveldb作为服务端,文献1利用simplehttp做中间件,文献2利用mapkeeper做中间件,文献2的过程太过繁琐,因此本文采用文献1的方法,但文献2的一些测试步骤依然可取。

YCSB的逻辑思路可以参考文献3的YCSB源码分析。

准备工作

编译leveldb,并且复制libleveldb.a/usr/local/lib,复制include/leveldb/usr/local/include

cp ./out-static/libleveldb.a /usr/local/include/
sudo cp -R ./include/leveldb/ /usr/local/lib
安装依赖库 JSON
 apt install libjson-c-dev
若进行压缩测试的话,则安装Snappy
apt install libsnappy-dev
安装依赖库libevent

需要是1.4的版本,版本下载链接

下面复制于文献1,相应版本号需与下载链接中保持一致。

cd libevent-1.4.14b-stable
./configure && make
sudo make install
sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
安装simplehttp

进入simplehttp/simplehttp

cd simplehttp
make
sudo make install
安装simpleleveldb

修改simpleleveldb的include和Makefile

## 文件 str_list_set.c 和 simpleleveldb.c

#include <json-c/json.h>

## Makefile

LIBS = -L. -L$(LIBSIMPLEHTTP_LIB) -L$(LIBEVENT)/lib -L/usr/local/lib -L$(LIBLEVELDB)/lib -levent -ljson-c -lsimplehttp -lleveldb -lm -lstdc++ -lsnappy -lpthread

安装

cd simpleleveldb
env LIBLEVELDB=/usr/local make
sudo make install
安装并允许YCSB客户端
git clone https://github.com/jtsui/ycsb-leveldb.git
cd ycsb-leveldb
mvn -pl com.yahoo.ycsb:leveldb-binding -am clean package
测试
./ycsb load leveldb -P workloads/workloada
./ycsb run leveldb -P workloads/workloada

注意: ycsb默认使用python2

可能出现的错误
  1. JAVA_HOME:
    https://docs.oracle.com/cd/E19182-01/821-0917/inst_jdk_javahome_t/index.html
Step:
  1. levelDB:
make clean && make
cp out-static/libleveldb.a /usr/local/lib/
cp -r include/leveldb /usr/local/include/
  1. simplehttp:
    2.1 compile and make
    in simplehttp/simpleleveldb
make clean
env LIBLEVELDB=/usr/local make
make install

2.2 run as server

simpleleveldb --address=localhost --port=8080 --db-file=test

# options:
  --address=<str>        address to listen on
                         default: 0.0.0.0
  --block-size=<int>     block size
                         default: 4096
  --compression=True|False snappy compression
  --create-db-if-missing=True|False Create leveldb file if missing
  --daemon               daemonize process
  --db-file=<str>        path to leveldb file
  --enable-logging       request logging
  --error-if-db-exists   Error out if leveldb file exists
  --group=<str>          run as this group
  --help                 list usage
  --leveldb-max-open-files=<int> leveldb max open files
                         default: 4096
  --paranoid-checks=True|False leveldb paranoid checks
  --port=<int>           port to listen on
                         default: 8080
  --root=<str>           chdir and run from this directory
  --user=<str>           run as this user
  --version              0.1
  --write-buffer-size=<int> write buffer size
                         default: 4194304
  1. ycsb-leveldb
    3.1 compile and make
mvn -pl com.yahoo.ycsb:leveldb-binding -am clean package

3.2 test as client

./ycsb load leveldb -P workloads/workloada
./ycsb run leveldb -P workloads/workloada
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
可以的,关于 YCSB (Yahoo Cloud Serving Benchmark) 在 MySQL 上的使用,你可以按照以下步骤进行: 1. 首先,下载和安装 YCSB。你可以从 YCSB 的 GitHub 仓库中获取最新的代码:https://github.com/brianfrankcooper/YCSB 2. 确保已经安装了 Java 开发环境(JDK)和 Apache Maven。 3. 在 YCSB 的主目录下,运行以下命令编译 YCSB: ``` mvn clean package ``` 4. 创建一个新的工作负载配置文件,例如 `workload.mysql`,用于定义要执行的操作类型和对数据库的负载。在该文件中,你需要指定要使用的数据库驱动程序、连接字符串、用户名和密码以及执行的操作类型和参数。 5. 在 MySQL 数据库中创建一个用于测试的表。可以使用 YCSB 提供的 `mysql` 工作负载类来创建表。运行以下命令: ``` ./bin/ycsb load mysql -s -P workloads/workload.mysql -p db.url=jdbc:mysql://localhost:3306/ycsb -p db.user=<username> -p db.passwd=<password> ``` 其中 `<username>` 和 `<password>` 是你的 MySQL 数据库的用户名和密码。 6. 运行基准测试以评估数据库性能。运行以下命令: ``` ./bin/ycsb run mysql -s -P workloads/workload.mysql -p db.url=jdbc:mysql://localhost:3306/ycsb -p db.user=<username> -p db.passwd=<password> ``` 替换 `<username>` 和 `<password>` 为你的 MySQL 数据库的用户名和密码。 以上步骤将帮助你在 MySQL 上使用 YCSB 进行基准测试。你可以通过调整工作负载配置文件和 YCSB 命令行选项来定制测试
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值