Roads Less Taken

A blend of programming, boats and life.

HyperDex on Ubuntu 12.10 From Source

| Comments

So ok, I really like looking at new interesting NoSQL databases. Up until yesterday I felt Riak was the most interesting one (have also coauthored Phriak - a Riak binding for Pharo Smalltalk) but after an evening of discussing choices of key/value backends for the Oak project I decided to “google a bit” and stumbled upon HyperDex.

Without having had the pleasure to actually play with it yet - on paper - it sure looks like a killer NoSQL database. It seems to offer basically the same kind of robustness and horisontal “just add another box” kind of scalability that Riak offers including auto balancing etc. But at the same time it offers awesome raw speed beating both MongoDB (without cheating like Mongo does) and even Redis, although HyperDex is truly persistent. And to put sugar on top - it has atomic operations in Redis style and manages to somehow avoid the eventual consistency corner - not sure about the details around that.

In summary - an extremely interesting NoSQL database.

Building from source

NOTE: You don’t need to build anymore, as of release 1.0.rc5 there are binaries available for Ubuntu

The instructions on how to build HyperDex from source were a tad incomplete. So I offer the following procedure that seemed to work for me in a relatively clean Ubuntu 12.10.

First we need a bunch of tools (updated 2013-01-17 with some corrections from Robert Escriva):

1
sudo apt-get install git autoconf automake autoconf-archive libtool python-dev python-pyparsing cython libpopt-dev libcityhash-dev g++ libgoogle-glog-dev libleveldb-dev bison gperf flex python-sphinx

Then we need a bunch of git clones:

1
2
3
4
5
git clone git://git.hyperdex.org/po6.git
git clone git://git.hyperdex.org/e.git
git clone git://git.hyperdex.org/busybee.git
git clone git://git.hyperdex.org/replicant.git
git clone git://git.hyperdex.org/HyperDex.git

Then, in the order listed above, do the following in the first four:

1
autoreconf -i; ./configure; make && sudo make install

…and perhaps something like this in HyperDex:

1
autoreconf -i; ./configure --enable-python-bindings; make && sudo make install

If all is well you should be able to find the hyperdex command in your path and if hyperdex daemon --help provides helpful output then all is probably fine. For more details take a look in HyperDex/doc/02.installation.rst.

Happy hacking!

Comments