2009年10月04日20:18 KVS Ruby 噂のTokyoCabinet/TokyoTyrantを使ってみた key-value ストアに興味がある ささたつ です。key-value ストアとして有名なものといえば memcached かと思いますが、他にも TokyoCabinet や TokyoTyrant というものも注目されています(不思議な名前ですね!)。key-value ストアでありながら高速、かつ、データをメモリで無くファイルに保存しているため、サーバが落ちてもデータが消えないとか。 実際に mixi の最終ログイン時間の保持などに使われているそうです。 memcached をセッションの保持などに使っている場合、memcached のサーバがダウンしてしまったら、データは全て消えてしまいます。その結果 RDBMS にアクセスが集中し、パフォーマンスが大幅に悪化し
RDBMSは細かなデータ構造を管理したい時には便利だが、メモやWebページのようなコンテンツを管理する際には大袈裟になる場合がある。そうした時にはキーバリュー型のシンプルなデータベースが便利だ。キーバリュー型というとmemcachedのような補助的なシステムを思い浮かべるが、そこだけに収まらない使い方が出来る。 キーバリューデータベースを使ったCMS その実例としてTokyo Promenadeを紹介しよう。Tokyo Cabinetの作者で知られるmikio氏が開発したCMSだ。 今回紹介するオープンソース・ソフトウェアはTokyo Promenade、Wikiのようなページ管理ができるCMSだ。 Tokyo PromenadeはWikiのように誰でもコンテンツが編集できるCMSだ。記法としてはLaTeXでよく使われる記法を採用しており、見栄えもそれに近いものになっている。また音声ブラウ
梅雨。部屋干しした洗濯物による異臭騒ぎに苦しむmikioです。今回は、Tokyo Cabinetのテーブルデータベースで超お手軽に全文検索をする方法について説明します。 使い方 テーブルデータベースについてまずおさらいしておきましょう。PerlやRubyのハッシュのようにコラム名とその値を関連づけた構造を、主キーを識別子として保存するデータベースです。例えばRubyからデータを保存するに以下のように行います。データベースであることをほとんど意識させないというのが素敵ポイントです。APIはCでもPerlでもRubyでもほとんど同じなので、言語にかかわらず同じようにレコードを操作できます。 require 'tokyocabinet' include TokyoCabinet # データベースを開く tdb = TDB::new tdb.open("casket", TDB::OWRITER
Twitterに似たWebサービスを提供するPlurk.com。時間軸を持つことで、よりインタラクティブな印象与えるサービスだ。世界的に展開しているのでアクセス数も相当多い。そのような中で活躍するのがキャッシュサーバだ。 実践で使われている信頼性高いキー/バリューデータベース Plurk.comでは3つのデータベースが使われている。一つはMySQLもう一つはmemcached。そして最後にLightCloudだ。 今回紹介するオープンソース・ソフトウェアはLightCloud、Tokyo Cabinetをベースにしたキー/バリューデータベースだ。 LightCloudはmixiなどでもお馴染みのTokyo Cabinetを利用して構築されている。ライブラリはPythonのみではあるが、他の言語へのリプレースもそれほど難しくなさそうとのことだ。実際にPlurk.comで使われているという点が
ノートPCの冷却ファンがうるさいのを対処しようとしてWebで調べたら、そのファンの設計者が「静音性へのこだわり」を語ったページにたどり着いて複雑な心境のmikioです。今回は、Tokyo Cabinet(TC)の最新バージョンで実装された動的デフラグ機能について長々と説明します。 断片化とデフラグ 任意のサイズのデータを管理する記憶装置においては、利用可能領域の断片化(fragmentation)の問題が常につきまといます。ファイルシステム上で任意のサイズのファイルを管理する際にも、データベースファイル内で任意のサイズのレコードを管理する際にも、C言語のmalloc/free関数群でメモリの管理をする際にも、様々なレイヤで断片化が起きうるのです。なぜなら、データを削除もしくは移動した際の空き領域を再利用するにあたって、その領域と同じサイズのデータが常に入ってくるとは限らないからです。特にデ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く