Posts tagged ‘Tokyo Cabinet’

Tokyo Cabinetをのインストール

またインストールネタですいません。
Tokyo Cabinetを入れてみます。

環境はいつもの。

#cat /etc/redhat-release
CentOS release 5.3 (Final)

とりあえず。ダウンロード(ああ、wgetは面倒くさい)

# cd /tmp
# wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.32.tar.gz

前提として、zlibとbzip2が入っていることが前提だそうなので

# yum list zlib
zlib.i386 1.2.3-3 installed
# yum list bzip2
bzip2.i386 1.0.3-4.el5_2 installed

入っているようなのでこのままインストールします。

# tar zxvf tokyocabinet-1.4.32.tar.gz
# cd tokyocabinet-1.4.32
# ./configure
 :
checking bzlib.h usability... no
checking bzlib.h presence... no
checking for bzlib.h... no
configure: error: bzlib.h is required

bzlib.hがないというエラーなので、調べてみるとbzip2-develというのが必要らしい。

yum install bzip2-devel

改めて、

# ./configure
# make
# make install

これでストレージ部分はインストールは出来たのですが、これを管理するというか操作する部分がないのでTokyo Tyrantというクライアント(というかマネージャ?)もインストールします。
Tokyo Tyrantのドキュメントを参照(素直にググって出てこなかったのですが・・・)

# wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.33.tar.gz
# tar zxvf tokyotyrant-1.1.33.tar.gz
# cd tokyotyrant-1.1.33
# ./configure
# make
# make install

ここまで出来たら、

# ttserver

で起動することを確認出来ればOKです。


Tokyo Cabinet

Tokyo Cabinetというのをはじめて聞いた。
これは何かというと、要するにデータベースである。
OracleやMySQLなんかと何が違うのかというと、性能が違うらしい。
思いっきり性能面を重視した設計にしてあるそうです。

なぜこれを知ったのかというと、現在参画している案件で、数万アクセス/秒くらいのアクセスのトランザクションを処理する必要があり、メモリ上に展開するデータベースが必要になったからです。

当初はmemcachedというそれなりに実績もあるモノを検討していたのですが、ハードウェア障害が起きた場合に(メモリ上にデータが展開されているので)すべて消えてしまうというのが問題でした。

そこで代替案としてTokyo Cabinetが出てきたのでした。
これを開発したのはmixiの中の人のようです。

Javaアプリケーションから使用することを検討しているのですが、APIで扱う範囲が低レイヤーなのでどうしようか悩んでいるところです。
時間があれば一度試してみたいところです。