Web アプリケーションのプラットフォームを選択しています。
クラウド コンピューティングがフロント エンド サーバーをどのようにスケーリングできるかは理解していますが、データベース サーバーはどのように処理されるのでしょうか?
これを可能にするために開発者がしなければならないことはありますか?
Web アプリケーションのプラットフォームを選択しています。
クラウド コンピューティングがフロント エンド サーバーをどのようにスケーリングできるかは理解していますが、データベース サーバーはどのように処理されるのでしょうか?
これを可能にするために開発者がしなければならないことはありますか?
一般的に、はい。複数のマシン間でDBをスケーリングする最も一般的な方法は、列ストアを使用することです。このようにして、テーブルの各列を別々のマシンに格納できるため、検索に使用できるCPUパワーと帯域幅の量が大幅に増加します。検索は並行して実行することもできます。会社の列での検索は1台のサーバーにしかヒットしないため、年の列での検索が遅くなることはありません。
私が読んだことから、これはGoogleのMapReduceがどのように機能するかです。
ウィキペディアのコラムストアページのメリットセクションは特に有益です。
同様の方針に沿って、OLAPは興味深いものです。OLAPは、読み取りと書き込みのトレードオフを完全に変更します。大規模で複雑なクエリのクエリと読み取りは高速ですが、新しいデータの書き込みには時間のかかる再構築プロセスが必要です。
短い答え:はい。
長い答え:それは異なります。どのような処理を行う必要がありますか?マップを減らすことはできますか?この種のもののために存在する多くの解決策があります。memcacheの分散キャッシングは、バックエンドで多くのサービスを拡張するのにも役立ちます。
これはデータベースによって異なります
SlicehostはMySQLClusterを使用し、Googleはそのマップを使用します-誇大広告などを減らします。クラウドプロバイダーとそれらが使用するデータベースに依存します
他の人はVMを提供するだけで、プライベートIPを持つ仮想マシン上に独自のデータベースをセットアップします
仮想ボックスへのsshアクセスを提供するだけのクラウドプロバイダーを使用している場合は、独自のデータベーススケーリングを実装する必要があります。Google AppEngine、Intuit Partner Platformなどで実行している場合、スケーラビリティは提供されたデータストアに組み込まれています。
基本的に、クラウドコンピューティングには魔法のようなものは何もありません。この組み込みのスケーラビリティを実現するには、ある程度の自由を放棄します。Googleのデータストアは、完全なリレーショナルデータベースのすべての側面を提供しているわけではありませんが、途方もない量のトラフィックに拡張することができます。
方法に関する限り、私は最近、まさにこれに特化した論文に出くわしました. 講義で取り上げられていたので、論文の内容は知っていますが、読んだことはありません。それでも、講義には非常に興味深いアイデアがありました。
Amazon と Google はデータ ストアを使用しており、従来の RDBMS とは異なります。
このリンクをたどると、さらに背景情報を見つけることができます
ここでデータストアの短いリストを見つけることができます