IBM社のCouchDBセミナーに参加した
昨晩、IBM社主催のセミナー「CouchDB で始める Web 時代のデータベースとの付き合い方 - Time to relax!!」に参加しました。長野への日帰り出張後という強行日程でしたが、MapReduceの概要などがつかめたので、がんばって参加したかいがあったと思います。
セミナーは、CouchDBの概要、RESTful APIの使い方、MapReduceのデモという3部構成でした。資料が後日公開されるそうなので、詳細はそちらでご確認ください。
個人的に興味深かった点を、備忘録を兼ねてメモしておきます。
リビジョン管理の仕組みが面白い
データを登録するとリビジョン番号が振られ、更新時や削除時にはそのリビジョン番号のマッチング処理を行う、という仕組みが面白いと思いました(参考)。
WikiやISO文書管理システムなどとの相性も良いでしょうし、排他制御の必要なシステムでも威力を発揮するのではないでしょうか。
ただ、リビジョン番号が一致しないときに「412 Precondition Failed」が返される実装には、少し違和感を覚えました。リクエストヘッダにリビジョン番号を含めているわけではないのですから、「409 Conflict」のほうがしっくりきます。逆に、412にしたいのならば、衝突の検出にETagなりLast-Modifiedなりを使うのが筋ではないかと思います(ML等ですでに議論されているかもしれません)。