Plurk.comで使われているTokyo Cabinetをベースにしたキー/バリューデータベース「LightCloud」
Twitterに似たWebサービスを提供するPlurk.com。時間軸を持つことで、よりインタラクティブな印象与えるサービスだ。世界的に展開しているのでアクセス数も相当多い。そのような中で活躍するのがキャッシュサーバだ。
実践で使われている信頼性高いキー/バリューデータベース
Plurk.comでは3つのデータベースが使われている。一つはMySQLもう一つはmemcached。そして最後にLightCloudだ。
今回紹介するオープンソース・ソフトウェアはLightCloud、Tokyo Cabinetをベースにしたキー/バリューデータベースだ。
LightCloudはmixiなどでもお馴染みのTokyo Cabinetを利用して構築されている。ライブラリはPythonのみではあるが、他の言語へのリプレースもそれほど難しくなさそうとのことだ。実際にPlurk.comで使われているという点が、お勧めできる点だ。
マネージャ
特徴は高速性にある。読み込みでmemcachedの2倍程度、書き込みで5倍程度の遅さに収まっている。memcachedがオンメモリなのを考えると十分速い。LightCloudはファイルに書き出されるので、データが消えないという大きな利点がある。
利用は簡単で、ライブラリを読み込んだらsetとgetで値の読み書きを行うだけだ。文字列の他、リストやカウンター(書き込むたびに値がインクリメントされる)がある。クライアントだけではなく、複数のノードおよびマスター/スレーブを管理するマネージャも提供されている。
ブログのエントリーやマイクロブログのつぶやきなど、MySQLに収めるにはオーバースペックなデータはシンプルなキー/バリューデータベースの方が収まりよく、さらに高速に扱えて便利だ。さらにLightCloudを使えば扱いやすくなりそうだ。
Plurk Open Source - LightCloud - Distributed and persistent key value database