BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Moneta:Tokyo CabinetやMemcacheのようなKey-Valueストアへのインターフェイス

Moneta:Tokyo CabinetやMemcacheのようなKey-Valueストアへのインターフェイス

データの格納のことになると、リレーショナルデータベースが唯一のオプションである。実際の事例に基づいて、key-valueストアをちょっと見てみる価値 があるかもしれない。主に主要keyによって、データが格納されて、アクセスされる場合、key-valueストアはリレーショナルモデルよりも賢い選 択であるかもしれない。そこで、key-valueストアとはいったい何なのか?その名称は、plain-oldハッシュと非常に似ているように思われる が、概念上はそうである。

本格的なRDBMSと比較すると、key-valueストアはずっと単純であり、それが多くの競合する実装が利用可能である理由であると思われる。さまざ まなkey-valueストア向けの統一インターフェイスである、Tokyo CabinetおよびMonetaを見てみる。

Tokyo Cabinet(リンク)はCライブラリであり、非常に高速で空間効率の良いkey-valueストアを実装する。

データベースは、レコードを保持する単純なデータファイルであり、それぞれはkeyとvalueの組み合わせである。すべてのkeyとvalueは、可変 長のシリアルバイトである。バイナリデータおよび文字列は、keyおよびvalueとして使用可能である。データテーブルやデータタイプの概念はない。レ コードはハッシュテーブル、B+ treeまたは固定長の配列で構成される。

Rubyのバインディング(リンク)の他に、Perl、JavaおよびLua向けのAPIが利用可能である。

マシン全体でTokyo Cabinetを共有するために、Tokyo Tyrant(リンク)が並列およびリモート接続向けにサーバを提供している。Tokyo Cabinetに関する例や詳細については、Ilya Grigorik氏の紹介記事を参考にしてもよい(リンク)

key-valueストアを使用することを決めたが、特定の実装をまだ決めたくない場合、Monetaが重宝する(リンク)。それは「key/valueストア向け の統一インターフェイスを提供することを目的としている」。ちょうどRackがWebサーバに対しておこなうことと同様である。またYehuda Katz氏が説明するように(リンク)「key/valueストアに関してsugarを提供するライブラリ(たとえば、RailsおよびMerbのキャッシングサ ポート)は、バックエンドとしてMonetaを使用することができる」。

難しい設定など一切なしで、Monetaはファイルストア、memcacheストア、インメモリストア、ファイルシステムのxattrs、DataMapperの他に、前述のTokyo Cabinetを(「Tokyo CabinetおよびTokyo Tyrantへのruby-ffiベースのインターフェイスであるrufus-tokyo(リンク)」を通じて)サポートする。

Monetaについて詳しくは(リンク)、Yehuda氏のブログを参照するか、githubリポジトリ(リンク)を検討するとよい。

 

原文はこちらです:http://www.infoq.com/news/2009/02/moneta-tokyo-cabinet

この記事に星をつける

おすすめ度
スタイル

BT