Tokyo Cabinet/Tyrant(*12)は日本のミクシィが開発しました。このシステムは、バックエンドサーバのTokyo Cabinetと、リモートアクセス用のクライアントライブラリTokyo Tyrantで構成されています。
拡張性はないが強い整合性とトランザクションを提供 Tokyo Cabinet/Tyrantは、単体のサーバでの利用を前提としています。分散型のようにデータを自動で分割し水平拡張する機能を持たないため、ノードを追加したいときは、アプリケーション側などで対応する必要があります。また、障害復旧は手動で行うことになります。
データを複数のサーバに分割・複製しないので、「強い整合性」を提供します。排他制御も可能であり、ACIDトランザクションをサポートしています。
ディスクに保存しデータを永続化 Tokyo Cabinet/Tyrantを使うシステムでは、性能向上のために、先述のオンメモリ型のMemcachedが併用されます。Tokyo Cabinet/TyrantはMemcachedプロトコルをサポートしており、メモリ上のデータを定期的にディスクにフラッシュすることで、データを永続化できます。
メモリベースのMemcachedと変わらぬ高性能 Tokyo Cabinet/Tyrantは、データをディスクに格納しながらも、オンメモリ型のMemcachedに近い応答性能が得られるという点で高い評価を得ています(*13)。図3のように、MemcachedとMySQLの組み合わせよりも性能に優れると評価されています。ただし、いったんデータがメモリに収まらなくなると、性能が大きく低下するという特性があるようです。
*12 Tokyo Cabinet/Tyrant http://fallabs.com/tokyocabinet/。現在は、このプロダクトの後継として、Kyoto Cabinet/Tycoonの開発が行われています。
*13 パフォーマンス評価 http://www.mysqlperformanceblog.com/2009/10/19/mysql_Memcached_tyrant_part3/を参照。
本連載で抜粋・紹介している原稿の初出は下記書籍です。本連載では詳述していないNoSQLの基本的な考え方、アーキテクチャの詳細などは、書籍でご確認ください。
本書はクラウディアン(旧ジェミナイ・モバイル・テクノロジーズ)の技術者らが監修および執筆を行っています。同社は、国産NOSQL「HIBARI」を開発、その後、Cassandraに自社の「HyperStore」を実装したクラウドストレージ用パッケージソフトウェア「Cloudian」を開発して、現在商用提供を行っているITベンチャー企業です。
Copyright © ITmedia, Inc. All Rights Reserved.