T

データストレージの4つの柱

前のエントリで紹介したCouchDBだが、そこに「The hour pillars of data management」という言葉があって、何のことかわからないのでリンク先をみたら面白かったのでこれまた訳出。

4つの柱

ずっとCouchDBの実装にのめり込んでいたので、今のいままでパッケージ全体の技術的なビジョンについてはっきりさせるよう説明する時間がなかった。CouchDBは小さなものではない。完全な分散データベースであり、データ管理におけるさまざまな難しいエリアを取り扱うものだ。しかし、些細な設計上の決定や、どうやってそれらが一緒に動作するのかといったことを含め全てのパートを説明するのは難しい。特に、それが作成途中であれば、始まったときと同じままであることは滅多になく、先に進むにつれてそれは変化し、進化していく。だが今やCouchDBは十分に前進したので、幅広い層の人たちにどうやってこれを紹介し説明するのかをじっくり考えることが出来る。

二日ほど前にシンプルな用語の変更を決断した。「computed tables」を「views」にすることにした(Nedのおかげ)のだ。この変更はあまりに当然のことなので、どうしてもっと前にやらなかったのかと自分を責めたくなる。computed tablesと名付けた理由はもともとあったのだが、この名前はみんなを混乱させていた。「virtual tables」という名前にしようかとも思ったが、viewsの方がバックグランドの異なるさまざまな開発者にも理解しやすい。

さて、これからCouchDBシステムのコアの概要に取りかかるわけだが、その最も深い基礎となるところについて説明するやり方として、『データ管理の4つの柱』というのを思いついた。すなわち

保存…データを保存して確実に取り出したい。

閲覧…データベースにはデータの興味深いところを集めて体系化し、閲覧できてほしい。

共有…複数の人間やマシンがデータにアクセスする必要がある、しかもオフラインでも。

セキュリティ…プライベートなことはプライベートのままにして、重要なデータを他の人から変更されないようにしたい。

わかりやすい柱でしょ?4つの柱というのを思いついた架空の数学者をねつ造してWikipediaにページを作ってやろうかな。全部が「S」で始まるのもなかなかいいと思う。どれだけかはまだわからないが。ひょっとしたら柱じゃなくて「データ方式のファンタスティック・フォー」とか「データ黙示録の四騎士」とかの方がよかったのかもしれない。とにかく、データ管理の4なんとかだ。

とりあえず4つの柱を建ててその非常な重要性について説明したので、CouchDBにはその全てがあるというのをご覧に入れよう。

保存…ローバストでACID対応のストレージエンジン

閲覧…データを効果的にフィルター、フォーマット、体系化するViewエンジン

共有…効率のいい、インクリメンタルで双方向的なレプリケーション

セキュリティ…分散セキュリティとバリデーションモデル

というわけで、みんな「俺のデータベースには4本中2本の柱しかないぞ、CouchDBを使おう」となるわけだ。

いずれにせよ、まあ柱のことはさておき、コミュニケーションの問題があるのはわかっている。特に自分が、この件について上手に説明できないこと。だからみんなになんとか説明しようと努力しているから、しばらく新しくコードを書いていない。アーキテクチャーとバックエンドのコンポーネントについての詳しい説明はできていて、それぞれのパートの説明やどうやってそれらがシームレスかつ信頼できる動作をするよう設計されているのかについて説明する。もうすぐできあがるので、チャンネルはそのままで。

用語がいくつか前のエントリと違っているのはご愛嬌。

Posted by on 10月 27, 2008 in Apple, CouchDB

コメントを残す