P2P に適した軽量ドキュメントデータベース CouchDb
様々なオープンソースを毎日のように紹介してくれるサイト「MOONGIFT」で、「CouchDb」
というちょっと風変わりなデータベースが紹介されてました。
「CouchDb」は、 "RESTful JSON API"
によってアクセス可能なドキュメントデータベースで、リレーショナルデータベースでも、オブジェクトデータベースでもありません。(XMLデータベースとの関連は不明)
基本的には
「Dekoh」 のような Peer to
Peer 型のシステムでの使用を想定しているようで、レプリケーションの作成や同期合わせが簡単であることも大きな特徴です。また、「Twitter」
で注目を集めたプログラム言語「Erlang」で実装されている点も興味深いです。
とりあえず、関連プロジェクトの「levitz」より XUL ベースのサンプル・プログラムをダウンロードして、試してみました。
「CouchDb」の http_access.log を確認すると、こんな感じです。
127.0.0.1 - - [05/Sep/2007:21:03:21 +0900] "GET /$all_dbs HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:28 +0900] "PUT /test/ HTTP/1.1" 201 0
127.0.0.1 - - [05/Sep/2007:21:03:28 +0900] "GET /$all_dbs HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:40 +0900] "GET /test/$all_docs HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:40 +0900] "POST /test/ HTTP/1.1" 201 0
127.0.0.1 - - [05/Sep/2007:21:03:41 +0900] "GET /test/$all_docs HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:46 +0900] "GET /test/EAAF2EB484164104128FF0A648596763 HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:54 +0900] "DELETE /test/EAAF2EB484164104128FF0A648596763 HTTP/1.1" 202 0
127.0.0.1 - - [05/Sep/2007:21:03:54 +0900] "GET /test/$all_docs HTTP/1.1" 200 0
127.0.0.1 - - [05/Sep/2007:21:03:56 +0900] "DELETE /test HTTP/1.1" 202 0
127.0.0.1 - - [05/Sep/2007:21:03:56 +0900] "GET /$all_dbs HTTP/1.1" 200 0
関連情報
・MOONGIFT:
» Web2.0時代のニュータイプDB「CouchDb」:オープンソースを毎日紹介
・CouchDb
Quick Overview - CouchDb
・Jungle
Java - デスクトップとインターネットの統合 (2)
・twitterブームの陰で注目を集める“Erlang”
- @IT
(2009/04/03 追記)
・Apacheの非RDB/キー・バリューストア
分散データベース「CouchDB 0.9.0」リリース:CodeZine