gh-66 added build instruction.

This commit is contained in:
m1ch1 2012-02-19 21:31:46 -08:00
Родитель 2dfbfb2c68
Коммит 2e2e99532b
5 изменённых файлов: 24 добавлений и 263 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -1,4 +1,3 @@
build
.classpath
.project
.settings

24
BUILD Normal file
Просмотреть файл

@ -0,0 +1,24 @@
# Building YCSB
To build YCSB, run:
mvn clean package
# Oracle NoSQL Database
Oracle NoSQL Database binding doesn't get built by default because there is no
Maven repository for it. To build the binding:
1. Download kv-ce-1.2.123.tar.gz from here:
http://www.oracle.com/technetwork/database/nosqldb/downloads/index.html
2. Untar kv-ce-1.2.123.tar.gz and install kvclient-1.2.123.jar in your local
maven repository:
tar xfvz kv-ce-1.2.123.tar.gz
mvn install:install-file -Dfile=kv-1.2.123/lib/kvclient-1.2.123.jar \
-DgroupId=com.oracle -DartifactId=kvclient -Dversion=1.2.123
-Dpackaging=jar
3. Uncomment `<module>nosqldb</module>` and run `mvn clean package`.

117
Makefile
Просмотреть файл

@ -1,117 +0,0 @@
#
# Running 'make -f Makefile.download-db-libs' will automatically download all
# of the libraries needed to build the YCSB drivers.
#
CASSANDRA_5_DIR=db/cassandra-0.5/lib
CASSANDRA_5_FILE=apache-cassandra-0.5.1-bin.tar.gz
CASSANDRA_6_DIR=db/cassandra-0.6/lib
CASSANDRA_6_FILE=apache-cassandra-0.6.13-bin.tar.gz
CASSANDRA_7_DIR=db/cassandra-0.7/lib
CASSANDRA_7_FILE=apache-cassandra-0.7.9-bin.tar.gz
CASSANDRA_8_DIR=db/cassandra-0.8/lib
CASSANDRA_8_FILE=apache-cassandra-0.8.7-bin.tar.gz
CASSANDRA_1X_VERSION=1.0.6
CASSANDRA_1X_DIR=db/cassandra-$(CASSANDRA_1X_VERSION)/lib
CASSANDRA_1X_FILE=apache-cassandra-$(CASSANDRA_1X_VERSION)-bin.tar.gz
HBASE_DIR=db/hbase/lib
HBASE_VERSION=0.90.5
HBASE_FILE=hbase-$(HBASE_VERSION).tar.gz
INFINISPAN_DIR=db/infinispan-5.0/lib
INFINISPAN_FILE=infinispan-5.0.0.CR8-bin.zip
MONGODB_DIR=db/mongodb/lib
MONGODB_FILE=mongo-2.7.2.jar
REDIS_DIR=db/redis/lib
REDIS_FILE=jedis-2.0.0.jar
VOLDEMORT_DIR=db/voldemort/lib
VOLDEMORT_FILE=voldemort-0.90.1.tar.gz
MAPKEEPER_DIR=db/mapkeeper/lib
MAPKEEPER_FILE=mapkeeper.jar
GEMFIRE_DIR=db/gemfire/lib
GEMFIRE_FILE=gemfire-6.6.1.jar
NOSQLDB_DIR=db/nosqldb/lib
NOSQLDB_FILE=kv-ce-1.2.123.tar.gz
.PHONY: build
build: download-database-deps
ant -q -e compile
grep name=\"dbcompile build.xml | perl -ne '$$_=~/name=\"(.+)\"\s+depends/; print "$$1\n"; system "ant -q -e $$1"'
download-database-deps: $(CASSANDRA_5_DIR)/$(CASSANDRA_5_FILE) \
$(CASSANDRA_6_DIR)/$(CASSANDRA_6_FILE) \
$(CASSANDRA_7_DIR)/$(CASSANDRA_7_FILE) \
$(CASSANDRA_8_DIR)/$(CASSANDRA_8_FILE) \
$(CASSANDRA_1X_DIR)/$(CASSANDRA_1X_FILE) \
$(HBASE_DIR)/$(HBASE_FILE) \
$(INFINISPAN_DIR)/$(INFINISPAN_FILE) \
$(MONGODB_DIR)/$(MONGODB_FILE) \
$(REDIS_DIR)/$(REDIS_FILE) \
$(VOLDEMORT_DIR)/$(VOLDEMORT_FILE) \
$(MAPKEEPER_DIR)/$(MAPKEEPER_FILE) \
$(GEMFIRE_DIR)/$(GEMFIRE_FILE) \
$(NOSQLDB_DIR)/$(NOSQLDB_FILE) \
$(CASSANDRA_5_DIR)/$(CASSANDRA_5_FILE) :
wget http://archive.apache.org/dist/cassandra/0.5.1/$(CASSANDRA_5_FILE)\
-O $(CASSANDRA_5_DIR)/$(CASSANDRA_5_FILE)
tar -C $(CASSANDRA_5_DIR) -zxf $(CASSANDRA_5_DIR)/$(CASSANDRA_5_FILE)
$(CASSANDRA_6_DIR)/$(CASSANDRA_6_FILE) :
wget http://archive.apache.org/dist/cassandra/0.6.13/$(CASSANDRA_6_FILE)\
-O $(CASSANDRA_6_DIR)/$(CASSANDRA_6_FILE)
tar -C $(CASSANDRA_6_DIR) -zxf $(CASSANDRA_6_DIR)/$(CASSANDRA_6_FILE)
$(CASSANDRA_7_DIR)/$(CASSANDRA_7_FILE) :
wget http://archive.apache.org/dist/cassandra/0.7.9/$(CASSANDRA_7_FILE)\
-O $(CASSANDRA_7_DIR)/$(CASSANDRA_7_FILE)
tar -C $(CASSANDRA_7_DIR) -zxf $(CASSANDRA_7_DIR)/$(CASSANDRA_7_FILE)
$(CASSANDRA_8_DIR)/$(CASSANDRA_8_FILE) :
wget http://archive.apache.org/dist/cassandra/0.8.7/$(CASSANDRA_8_FILE)\
-O $(CASSANDRA_8_DIR)/$(CASSANDRA_8_FILE)
tar -C $(CASSANDRA_8_DIR) -zxf $(CASSANDRA_8_DIR)/$(CASSANDRA_8_FILE)
$(CASSANDRA_1X_DIR)/$(CASSANDRA_1X_FILE) :
wget http://archive.apache.org/dist/cassandra/$(CASSANDRA_1X_VERSION)/$(CASSANDRA_1X_FILE)\
-O $(CASSANDRA_1X_DIR)/$(CASSANDRA_1X_FILE)
tar -C $(CASSANDRA_1X_DIR) -zxf $(CASSANDRA_1X_DIR)/$(CASSANDRA_1X_FILE)
$(HBASE_DIR)/$(HBASE_FILE) :
wget http://archive.apache.org/dist/hbase/hbase-$(HBASE_VERSION)/$(HBASE_FILE)\
-O $(HBASE_DIR)/$(HBASE_FILE)
tar -C $(HBASE_DIR) -zxf $(HBASE_DIR)/$(HBASE_FILE)
$(INFINISPAN_DIR)/$(INFINISPAN_FILE) :
wget http://iweb.dl.sourceforge.net/project/infinispan/infinispan/5.0.0.CR8/$(INFINISPAN_FILE)\
-O $(INFINISPAN_DIR)/$(INFINISPAN_FILE)
unzip -a $(INFINISPAN_DIR)/$(INFINISPAN_FILE) -d $(INFINISPAN_DIR)
$(MONGODB_DIR)/$(MONGODB_FILE) :
wget https://github.com/downloads/mongodb/mongo-java-driver/$(MONGODB_FILE)\
-O $(MONGODB_DIR)/$(MONGODB_FILE)
$(REDIS_DIR)/$(REDIS_FILE) :
wget https://github.com/downloads/xetorthio/jedis/$(REDIS_FILE)\
-O $(REDIS_DIR)/$(REDIS_FILE)
$(VOLDEMORT_DIR)/$(VOLDEMORT_FILE) :
wget https://github.com/downloads/voldemort/voldemort/$(VOLDEMORT_FILE)\
-O $(VOLDEMORT_DIR)/$(VOLDEMORT_FILE)
tar -C $(VOLDEMORT_DIR) -zxf $(VOLDEMORT_DIR)/$(VOLDEMORT_FILE)
$(MAPKEEPER_DIR)/$(MAPKEEPER_FILE) :
wget https://raw.github.com/m1ch1/mapkeeper/master/lib/mapkeeper.jar \
-O $(MAPKEEPER_DIR)/$(MAPKEEPER_FILE)
wget https://raw.github.com/m1ch1/mapkeeper/master/lib/libthrift-0.6.1.jar \
-O $(MAPKEEPER_DIR)/libthrift-0.6.1.jar
$(GEMFIRE_DIR)/$(GEMFIRE_FILE) :
wget http://dist.gemstone.com.s3.amazonaws.com/maven/release/com/gemstone/gemfire/gemfire/6.6.1/$(GEMFIRE_FILE) \
-O $(GEMFIRE_DIR)/$(GEMFIRE_FILE)
$(NOSQLDB_DIR)/$(NOSQLDB_FILE) :
wget http://download.oracle.com/otn/nosql-database/$(NOSQLDB_FILE) \
-O $(NOSQLDB_DIR)/$(NOSQLDB_FILE)
tar -C $(NOSQLDB_DIR) -zxf $(NOSQLDB_DIR)/$(NOSQLDB_FILE)

129
build.xml
Просмотреть файл

@ -1,129 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="ycsb" default="compile" basedir=".">
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="doc.dir" value="doc"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="dbcompile-gemfire" depends="compile">
<property name="db.dir" value="db/gemfire" />
<antcall target="dbcompile" />
</target>
<target name="dbcompile-infinispan-5.0" depends="compile">
<property name="db.dir" value="db/infinispan-5.0" />
<antcall target="dbcompile" />
</target>
<target name="dbcompile-cassandra-0.5" depends="compile">
<property name="db.dir" value="db/cassandra-0.5"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-cassandra-0.6" depends="compile">
<property name="db.dir" value="db/cassandra-0.6"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-cassandra-0.7" depends="compile">
<property name="db.dir" value="db/cassandra-0.7"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-cassandra-0.8" depends="compile">
<property name="db.dir" value="db/cassandra-0.8"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-cassandra-1.0.6" depends="compile">
<property name="db.dir" value="db/cassandra-1.0.6"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-hbase" depends="compile">
<property name="db.dir" value="db/hbase"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-mongodb" depends="compile">
<property name="db.dir" value="db/mongodb"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-voldemort" depends="compile">
<property name="db.dir" value="db/voldemort"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-jdbc" depends="compile">
<property name="db.dir" value="db/jdbc"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-redis" depends="compile">
<property name="db.dir" value="db/redis"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-mapkeeper" depends="compile">
<property name="db.dir" value="db/mapkeeper"/>
<antcall target="dbcompile"/>
</target>
<target name="dbcompile-nosqldb" depends="compile">
<property name="db.dir" value="db/nosqldb"/>
<antcall target="dbcompile"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac includeantruntime="false" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="build.classpath" deprecation="on">
<compilerarg value="-Xlint:unchecked"/>
</javac>
<antcall target="makejar"/>
</target>
<target name="dbcompile">
<path id="dbclasspath">
<fileset dir="${db.dir}/lib" includes="**/*.jar"/>
<fileset file="build/ycsb.jar"/>
</path>
<mkdir dir="${classes.dir}"/>
<javac includeantruntime="false" srcdir="${db.dir}/src" destdir="${classes.dir}" classpathref="dbclasspath" deprecation="on">
<compilerarg value="-Xlint:unchecked"/>
</javac>
<antcall target="makejar"/>
</target>
<target name ="makejar" description="Create a jar for the YCSB project">
<jar jarfile="build/ycsb.jar" includes="**/*.class" basedir="${classes.dir}"/>
</target>
<target name="clean">
<delete includeemptydirs="true">
<fileset dir="build" includes="**/*"/>
</delete>
</target>
<target name="doc">
<javadoc destdir="${doc.dir}/javadoc" packagenames="com.yahoo.ycsb,com.yahoo.ycsb.workloads,com.yahoo.ycsb.db,com.yahoo.ycsb.generator,com.yahoo.ycsb.measurements">
<fileset dir="." defaultexcludes="yes">
<include name="src/**"/>
<include name="db/*/src/**"/>
</fileset>
</javadoc>
</target>
</project>

Просмотреть файл

@ -1,22 +1,6 @@
This directory should contain kvclient-1.2.123.jar for building
and running Oracle NoSQL Database client.
INSTALL
Download kv-ce-1.2.123.tar.gz from here:
http://www.oracle.com/technetwork/database/nosqldb/downloads/index.html
Install kvclient-1.2.123.jar in your local maven repository:
mvn install:install-file -Dfile=kv-1.2.123/lib/kvclient-1.2.123.jar \
-DgroupId=com.oracle -DartifactId=kvclient -Dversion=1.2.123 -Dpackaging=jar
BUILD
Oracle NoSQL Database client can be compiled using target:
$ ant dbcompile-nosqldb
CONFIGURE
$KVHOME is Oracle NoSQL Database package files.