クラウドは非RDBを必要とする
最近流行するクラウドは、非RDBであるkey-valueストアを必要としている。
その理由を完全に理解できてないけれど、ネット上にある記事をメモしておく。
【元ネタ】
Web 時代の非リレーショナルデータベース: 第 3 回 Apache CouchDB で MapReduce フレームワークに基づく問いあわせを行う
「NoSQL」は「Not Only SQL」である、と定着するか? - Publickey
クラウドが流行する背景には、Webサーバーのスケールアップは容易だが、RDBのスケールアップが難しいことがあるからだろう。
そして、ApacheのCouchDB(Erlangで作られている)、GoogleのBigTable等のkey-value storeをスケールアップしやすい理由は、MapReduceによる並行処理で高速化できるからだからだろう。
しかし、クラウドが分かりにくいのは、データストアをRDBではなく昔の汎用機の頃に戻しているからではないだろうか?
RDBに慣れているとkey-value storeを持つシステムは実装しにくく、正直分かりづらい。
色々探ってみたい。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「ソフトウェア」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- 実践した後に勉強するのがエンジニアの本来の道(2022.01.09)
コメント
楽しみなエントリです。次回を期待しています。
ただこの文脈では、スケールアウトとスケールアップの違いが本質的のように思うので、スケールアウトと書いてあると(人によっては)わかりやすくなると思います。
投稿: 上美谷 | 2009/11/14 01:30
RDBの関係演算機能自体は(それなりの実装をすればという前提はあるものの)スケールアウト可能なので、(スケールアウトの障害となる)一貫性維持の機能を弱めたRDBがあるといいのかもしれません。今のkey value store は、RDBからみるとあまりに原始的で、最初はまあ良いにしても、アプリケーションが大きく/多くなると、移行やスキーマ変更が面倒くさすぎですよね。
投稿: soda | 2009/11/19 11:31
◆上美谷さん、sodaさん
コメントありがとうございます。
僕はクラウドやkey-value storeの本質は分かっていませんが、その2つが密接に関係する理由はMapReduceにあるのだろうと思います。
逆に言えば、並列処理によるMapReduceの威力がそれだけすごいんでしょうね。
投稿: あきぴー | 2009/11/19 21:52