YCSB導入

実装したMyCassandraをフォーマルなクラウドベンチマークで測定する為にgithubWikiを参考にYCSBを導入した。

http://wiki.github.com/brianfrankcooper/YCSB/getting-started

まずはCassandraについて動かせるようにしたのでメモしておく。
Cassandraのバージョンはここでは0.X.Yとしておく。(現状はx=5,6,7に対応)

ビルド

ソースをgitで取って、ant

git clone git://github.com/brianfrankcooper/YCSB.git
cd YCSB
ant

Cassandraのlib以下のjarファイル全てをYCSBのdb/cassandra-0.X/lib/にコピーして、DBインタフェース層のコンパイルを個別に行う

cd apache-cassandra-0.X.Y/lib/
cp *.jar ~/YCSB/db/cassandra-0.X/lib/

ant dbcompile-cassandra-0.X

Quick Start

実際の起動前に測定するシステムの個別設定が必要。
参考までにMac上でCassandraについて動かせるようにしたのでメモ。

  1. db/cassandra- 0.X/libに対してCLASSPATHを通す
    • Mac の場合は/Library/Java/Extentions以下に*.jarを置くことで対処
  2. CassandraのKeyspace,ColumnFamily?を設定
    • Keyspace 名を"usertable",ColumnFamily名を"data"にする@storage-conf.xml
    • インタフェース層のプロパティで名前は設定できる
  3. Cassandraの起動
  4. WorkLoad Aのload phase
    • java -cp build/ycsb.jar com.yahoo.ycsb.Client -load -db com.yahoo.ycsb.db.CassandraClientX -P workloads/workloada -p hosts=localhost
    • "hosts"にはコンマで複数指定可能
  5. WorkLoad Aのtransaction phase
    • java -cp build/ycsb.jar com.yahoo.ycsb.Client -t -db com.yahoo.ycsb.CassandraClientX -P workloads/workloada -P middle.dat -s > transactions.dat