Skip to content

Getting Started

m1ch1 edited this page Feb 28, 2012 · 16 revisions

Install Dependencies

MapKeeper depends on:

Java / Ant / Maven

Make sure they are installed on your system.

Libevent

wget http://monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar xfvz libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./configure --prefix=/usr/local
make && sudo make install

Boost

wget http://superb-sea2.dl.sourceforge.net/project/boost/boost/1.48.0/boost_1_48_0.tar.gz
tar xfvz boost_1_48_0.tar.gz
cd boost_1_48_0
./bootstrap.sh --prefix=/usr/local
sudo ./b2 install 

Thrift

wget http://archive.apache.org/dist/thrift/0.8.0/thrift-0.8.0.tar.gz
tar xfvz thrift-0.8.0.tar.gz
cd thrift-0.8.0
./configure --prefix=/usr/local

Keep an eye on the output from ./configure command. At the very end, you should see something like this:

Building C++ Library ......... : yes
Building TNonblockingServer .. : yes

Make sure that:

  • Building C++ Library says yes.
  • Building TNonblockingServer says yes.

If all is well, compile and install Thrift by running:

make && sudo make install

Generate Thrift MapKeeper Binding

First, you need to get a copy of MapKeeper repository:

git clone git://github.com/m1ch1/mapkeeper.git

This will create your local MapKeeper repository under a directory called mapkeeper. Save the location of the directory in an environment variable:

export MKROOT=`pwd`/mapkeeper

Go to mapkeeper/thrift directory and run make to generate and compile Thrift MapKeeper binding:

cd $MKROOT/thrift
make

Once the command succeeds, you should see libmapkeeper.so under gen-cpp directory.

Run MapKeeper Server!

MapKeeper supports various storage engines. See their READMEs on how to use them.

  • $MKROOT/bdb
  • $MKROOT/bdbj
  • $MKROOT/handlersocket
  • $MKROOT/leveldb
  • $MKROOT/mysql

Benchmark MapKeeper Server Using YCSB

Now that you are running MapKeeper server, you can benchmark it using YCSB. Clone the YCSB repository and compile it:

cd $MKROOT/ycsb
git clone git://github.com/brianfrankcooper/YCSB.git
cd YCSB
mvn clean package

Then, run ycsb command:

./bin/ycsb load mapkeeper -P ./workloads/workloada

For more detailed information about how to use YCSB, check out their wiki page.

Clone this wiki locally