Skip to content

Getting Started

m1ch1 edited this page Apr 15, 2012 · 16 revisions

1. Install Dependencies

MapKeeper depends on:

Java / 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

2. 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.

3. Run MapKeeper Server!

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

4. 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.