HailDBのインストール
HailDBは,BerkeleyDBの流れの組み込み型DBで,InnoDBの機能(全てのSQLクエリ,トランザクションを含む)を実現したものです.
A relational database in shared library form. Not a SQL database, although you can use this library as the storage backend for a SQL database.
なかなか興味深いアプローチだと思います.
こちらを試そうと思った理由はいくつかあり,
- 高速なクエリ機能(単純なハッシュ以上の機能)があってもいいなと思ったこと
- 脱SQL派ではありますが,反SQL派では無いことを示したかったこと
- Tokyo Cabinet以外の組み込みバックエンドとして使えるDBを探していること
などです.
インストールはコンパイルさえ通れば簡単です.理由は後述.
手元のFreeBSDにインストールしてみます.
> wget http://launchpad.net/haildb/2.3/athens/+download/haildb-2.3.0.tar.gz > tar xvf haildb-2.3.0.tar.gz > cd haildb-2.3.0 > ./configure > make CC btr/btr0btr.lo In file included from ./include/btr0btr.h:29:0, from btr/btr0btr.c:26: ./include/univ.i:295:23: error: redefinition of typedef 'ulong' ./config.h:572:27: note: previous declaration of 'ulong' was here In file included from ./include/data0type.h:451:0,
おっと,エラーが出て止まったので,少しだけ修正です.
これはtypedefが定義済みかどうかのチェックが怪しいだけなので,強引に書き換えます.
univ.i
↓
#ifndef HAVE_ULONG
/* typedef unsigned long ulong; */
#define HAVE_ULONG 1
#endif /* HAVE_ULONG */
再びmakeしてインストールします.
> make; su; make install
インストールされるのはこれらのファイルのみです.
-rwxr-xr-x 1 root wheel 12529083 Oct 10 22:54 libhaildb.so.4 lrwxr-xr-x 1 root wheel 14 Oct 10 22:54 libhaildb.so -> libhaildb.so.4 -rwxr-xr-x 1 root wheel 971 Oct 10 22:54 libhaildb.la
要するにライブラリ一つです.
makeの際に無茶苦茶に沢山警告が出ていたので,テストプログラムを走らせて確認します.
> make test (中略) PASS: tests/ib_update =================== All 21 tests passed ===================
テストは通ったのでインストールは大丈夫そうなのですが,なかなか敷居が高くて...自前のサンプルプログラム作成までは至りませんでした.
乞うご期待.