前々回、前回、に引き続き、Key Valueストア(KVS)ネタ。
データの整合性(Consistency)を重視するRDB、データの可用性(Availability)とデータの分散化(Partition-tolerance)を重視するKVS。
要件によって向き不向きがある訳だけど、toCのWEBサービスを考える時、全部バランスよく、しかもコストを抑えつつ実現したい訳です。
RDBマンセーなわたしでさえ、KVSに軍配を上げざるを得ないんですね。
もちろん、SalesForceみたいなアプローチも悪くない。
でも、DOA的な観点から考えると、アレは邪道なんでしょうねぇ。
Key Valueストアがリレーショナルデータベースを駆逐するシナリオの妥当性:Azureの鼓動:ITmedia オルタナティブ・ブログ
概ね同意ですが、少なくともWEBアプリケーション、特に toC に関して言えば、Key Valueストアは破壊的イノベーションだと思います。
前回も参考にしたこの記事が、的を射た説明をしてくれている。
もう1つの、DBのかたち、分散Key-Valueストアとは (1⁄3) – @IT
RDBで負荷分散させようとすると……
例えばMySQLを使う場合、1テーブルのレコード件数が数百万~数千万件を超えるような規模になると、1台のDBサーバだけでは実用的なパフォーマンスが達成しにくくなります。そこで一般には、以下のような対策によってRDBのスケーラビリティを引き上げる努力が必要となります。
・RDBサーバのスケールアップ(大型サーバへの載せ替え)
・DBのレプリケーションやシャード(パーティション)分割によるクラスタ構築
・分散キャッシュ(Oracle RACやmemcachedなど)によるクラスタ構築
経験者ならばお分かりいただけるとおり、このどれもが結果的に「高コスト」となるソリューションです。
要するに、そういうことなんすよ・・・
私たちRDBMS屋は、ココが腕の見せ所のひとつであり、飯の種な訳だったんですが、GAE上のBigTableでいともあっさり解決できてしまう予感。
DOA+コンソーシアム(ディー・オー・エー・プラス コンソーシアム)
ひっそりと活動を続けるDOAコンソーシアムでは、Key Valueストアをどう捕らえているんだろう。
株式会社マジカジャパンの羽生章洋が書いてるブログ:端境期を感じるシステム開発 – livedoor Blog(ブログ)
夏椰の湧水-Spring from Kaya- … 正規化について(基本)
正規化を判りやすく解説してある。
1NF~BCNFまで。
夏椰の湧水-Spring from Kaya- … 正規化について(オプション)
4NF~5CNFまで。