R&Dトレンドレポート

第3回 NoSQLを動かしてみよう

この記事を読むのに必要な時間:およそ 3 分

NoSQLの種類

第1回第2回とNoSQLとRDBMSの比較を行ってきました。では,NoSQLの具体的なプロダクトって何があるのよ?という話ですが,実際に調べてみると結構な数のプロダクトが存在するようです。

こちらのブログで紹介されていますが,実に40種類以上ものNoSQLが挙げられています。そして元ネタとなった資料も紹介されていますが(プレゼン資料をPDF化したものらしい),RDBMSとの違いをNot Only ACID, Not Only Relationalと表現していたりなかなか興味深いものがあります。

さて,今回は数あるNoSQLの中からTokyoCabinet/TokyoTyrantを取り上げたいと思います。

TokyoCabinet/TokyoTyrantとは

TokyoCabinet(以下TC)は現Mixiの平林幹雄氏が開発したもので,実際にMixiのシステムでも使用されているデータベースです。ハッシュ型データ構造のキーバリュー形式(Key Value Store:KVS)だけではなく,データ構造を選択することでDBのタイプを変更することができるようです。

KVSとしてはmemcachedというオンメモリ型のデータベースが有名ですが,memcachedはオンメモリ型という特性があるため,データを永続的に持つことができません(揮発性)でした。TCはmemcachedとは違いますが,memcachedとプロトコル互換があるため,memcachedを不揮発で使いたいというニーズに合致するものでした。実際にMixiではmemcachedからTCへの置き換えを行ったそうです。

また,TCとならんでTokyoTyrant(以下TT)というプロダクトがあり,こちらはデータベースエンジンであるTCのネットワークインターフェースの実装となります。TC単体ではネットワーク経由で使用することができませんが,TTと同時に使用することで外部の機器からネットワーク経由でTCを使用することが可能となります。

TokyoCabinet/TokyoTyrantを使ってみよう

それでは実際にTC/TTの環境を作成し,使用してみたいと思います。

OSCentOS_5.4(32ビット)
インストールするプログラムTokyoCabinet
TokyoTyrant
perlで使用するためのモジュールTokyoTyrant-perl

TokyoCabinet

①ソースのダウンロード&展開

Tokyo Cabinetのサイトからソースのダウンロードを行います。2010/10/19現在1.4.46が最新のようです。CentOSのようなLinuxマシンでは,ダウンロードの際にwgetを使用すると便利です。

$ wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.46.tar.gz
《中略》
2010-10-22 17:57:10 (358 KB/s) - `tokyocabinet-1.4.46.tar.gz' saved [1002423/1002423]

$ ls
tokyocabinet-1.4.46.tar.gz

正常にダウンロードできました。

続いて展開です。

$ tar zxvf tokyocabinet-1.4.46.tar.gz

《中略》

正常に展開されました。

②ソースのコンパイル&インストール

続いてソースのコンパイル作業です。

事前準備

私の環境では,zlib.h,bzlib.hが無いと怒られましたので,事前に入れておきましょう。


$ su -
Password:

# yum install zlib-devel
# yum install bzip2-devel

yumは便利ですね(^o^)/

# exit
一般ユーザに戻ります。

$ cd tokyocabinet-1.4.46
$ ./configure --enable-off64

《中略》

#================================================================
# Ready to make.
#================================================================

正常に終了しました。
※--enable-off64は32ビット環境で64ビットのファイルオフセットを扱うために必要。つけなかった場合はDBサイズが2Gでエラーとなる可能性もある。

続いてmakeします。

$ make

《中略》

#================================================================
# Ready to install.
#================================================================

そしてinstall

$ su - 
Password:?
# make install

《中略》

#================================================================
# Thanks for using Tokyo Cabinet.
#================================================================

これでTokyocabinetがインストールされました。

著者プロフィール

脇本武士(わきもとたけし)

都内中小IT企業(メイサンソフト(株))に所属。某大手自動車会社でのシステム開発,運用を経て,現在は研究開発部署に席をお借りしています。DB周りの保守サポート,ウェブ技術開発を主に手がけてきました。現在は大規模計算フレームワークの活用とKVSに注目しています。普段はOS Xを使用していますが一番よく使うアプリはTerminalです(笑)。

R&Dトレンドレポート(てくらぼ)

コメント

コメントの記入