[CouchDB] Definitive Guide のイントロダクション読むぐらいだったらこれを読むべき

というのは冗談ですが、いろいろWebをあさっていたらIBMで以下のドキュメントが公開されていることに、今更ながら気がつきました。なんで誰も教えてくれなかったんだ、、というのはおいといて。。。

http://www.ibm.com/developerworks/jp/lotus/ldd_tsurezure/index.html?S_TACT=105AGX90&S_CMP=EDU

CouchDBLotus Notes/Domino は別物ですが、Notes のよい?ところと Web のよいところをもってきて、Erlang で実装したらこうなったら、CouchDBとかいう名前がついていた、的なものですから、CouchDBに興味のある方も、Notesに興味のある方も、Notesをなんとかしたいぜ、って思ってる方も見るべきドキュメントかと。技術記事ですが、殆ど哲学的な内容ですので、電車の中で読めばOKなものです。

もちろん、10年以上前に書かれた記事ですから、当然今の状況を踏まえて読む必要がありますが。

ちょっとだけ引用します。

そこでノーツのとった方法は一つ一つの文書の名前ともなるユニークなキーを時間をベースに作成し、さらに作成日時や変更日時、そして変更回数などの履歴情報をすべての文書に持たせました。さらにフィールド単位で複製ができるように各フィールドにも変更された履歴を持たせてあります。

http://www.ibm.com/developerworks/jp/lotus/ldd_tsurezure/vol3.html

前半はCouchDBでも同じ(_revフィールド)。後半のフィールド単位の履歴、はまだ実装されていません、とか。

しかしここでもう一つ問題が発生します。長い間データベースを使っているとデータベースが削除スタブだらけになってしまうのです。ここでノーツはもう一つの『良い諦め』をしています。ある日数がたったらもう削除スタブは自動的に消してしまうのです。通常では90日がこの日数で、もし90日以上複製をとらないと、正しく削除の情報は複製されません。しかしコンピューターの世界で90日も通信しないシステムはないと考えれば、やはり無難な選択と言えるでしょう。過去は諦める、これもやはり『良い諦め』の一つと言えるでしょう。

http://www.ibm.com/developerworks/jp/lotus/ldd_tsurezure/vol3.html

ノーツは自動的にコンパクションするようですね。ネットワーク全盛のクラウド(笑)時代で90日、はあり得ないので、1週間ぐらいでコンパクションでいいんじゃないでしょうか。cronに設定してください。

重いけど機能が豊富なノーツクライアント、機能はやや落ちても安くて軽いブラウザー。これが現状での端的なそれぞれの表現かもしれません。しかし本当にそれだけでその選択ができるのでしょうか。機能が豊富であるということは、あくまでユーザーにとって必要な業務の実現をできるレベルを満たしているかいないかが基準ではないでしょうか。ユーザーの必要な業務がブラウザーのレベルで十分簡単に実現できるのであれば、それは豊富な機能と言えるかもしれません。その時ノーツクライアントはあまりに余分な機能をもつクライアントでしかなくなるかもしれません。

http://www.ibm.com/developerworks/jp/lotus/ldd_tsurezure/vol22.html

あーあ。。。