1

PHP を使用し、データベースを使用して各ユーザーのデータを格納する Web アプリケーションを構築するとします。サイトを開発し、専用サーバーを手に入れ、製品の宣伝を開始します。時間が経つにつれて、私のサイトに登録する人が増え、最終的にはすべてのデータがサーバーのテラバイトのハードドライブをいっぱいにし始め、より多くのディスク容量が必要であることが明らかになりました.

私の質問は、大量のユーザーデータを分離することなく、これ以上詰め込むことができなくなるまで、同じサーバーに無意識にディスクを追加することなく、これをどのように達成するのですか? 元のサーバーにユーザー データと一緒にサイト ページがある場合、2 番目のサーバーを追加すると、どの時点でシステムは「そのデータはそのサーバー上にあり、他のサーバーにはありません」と表示されますか? ページはどこに配置すればよいですか?また、ユーザーが同じサイトの同じコピーを別のデータバンクで使用している場合、ユーザーが私のサイトの URL を入力すると、どのサーバーが表示されますか? 大企業 (セールスフォース、グーグル) はこれをどのように達成していますか?

4

2 に答える 2

1

質問を始めましょう - 本当に固執する必要がありますか? はい、場合によっては、アプリケーションがソースをシンクに接続するパイプラインにすぎない場合もあります。データを永続化する必要があると仮定して、そのニーズに疑問を投げかけ始めると、保存されたデータが後で使用するためにどのようにクエリされると見なされるかについてもう少し知るようになります。重い書き込み、重い読み取り、ハイブリッドを考えてください。ここでは、すべてのデータが一緒にクエリされるわけではなく、頻度が異なることを確認します。同じユニットに同様のケイデンスを持つデータを保存することは理にかなっています。アプリケーションが、さまざまなマシンに分散する必要がある十分なデータを生成していると仮定します。参加しているすべてのマシンが同等のコンピューティング/ストレージ要求を処理できるように、複数のマシンを最適に使用したいと考えています。ここでは、シャーディング ポリシーを特定する必要があります。データが分散されたので、NS 間の名前を持つユーザーを格納しているマシンがダウンしているなど、部分的な障害に直面する可能性があります。高可用性が必要な場合、つまり、ほとんどの場合すべてのデータにアクセスする必要がある場合、複数のマシンにデータを複製する必要があります。これにより、合計ストレージ容量が減少し、結果のクラスターのサイズによっては、一貫性に関連する問題に直面する可能性があります。一貫性のないデータに対する許容度に応じて、結果的に一貫性のあるソリューションから、特定の数の書き込みがコミットされたときにデータの一部を利用できるクォーラム ベースのソリューションまでの範囲のソリューションを検討することをお勧めします。ほとんどの場合、すべてのデータにアクセスする必要があります 複数のマシンにデータを複製する必要があるため、合計ストレージ容量が減少し、結果のクラスターのサイズによっては、一貫性に関連する問題に直面する可能性があります. 一貫性のないデータに対する許容度に応じて、結果的に一貫性のあるソリューションから、特定の数の書き込みがコミットされたときにデータの一部を利用できるクォーラム ベースのソリューションまでの範囲のソリューションを検討することをお勧めします。ほとんどの場合、すべてのデータにアクセスする必要があります 複数のマシンにデータを複製する必要があるため、合計ストレージ容量が減少し、結果のクラスターのサイズによっては、一貫性に関連する問題に直面する可能性があります. 一貫性のないデータに対する許容度に応じて、結果的に一貫性のあるソリューションから、特定の数の書き込みがコミットされたときにデータの一部を利用できるクォーラム ベースのソリューションまでの範囲のソリューションを検討することをお勧めします。

また、存続時間、最後の N 個のアイテムのみ、「古い/未使用」データのアーカイブ/無効化など、他の特定の側面についても考えてください。

結果として得られる解決策について考えるのに役立つことを願っています。

于 2013-06-26T12:41:09.843 に答える
-2

アマゾン ウェブ サービスまたはWindows Azureの上にアプリを構築し、これはかなり複雑なので、彼らに心配させてください。

于 2013-06-18T10:23:33.783 に答える