データベースのコンテキストでは、NOSQLデータベースの利点の1つとして水平方向のスケーラビリティを見つけました。この用語はどういう意味ですか?
垂直スケーリングとどのように比較しますか?
水平スケーリング
水平方向のスケーリングは、基本的には増加するのではなく構築されています。大きなビーファーサーバーを購入してすべての負荷をそのサーバーに移動するのではなく、1台以上の追加サーバーを購入して負荷をそれらに分散します。
水平スケーリングは、サーバーで複数のインスタンスを同時に実行できる場合に使用されます。通常、1台のサーバーから2台のサーバーに移動するのは、2台から5台、10台、50台などに移動するのがはるかに困難です。
並列インスタンスの実行の問題に対処したら、Amazon EC2、Rackspaceのクラウドサービス、GoGridなどの環境を利用して、インスタンスを需要に応じて上下させ、サーバーの電力を支払う必要性を減らすことができます。これらのピーク負荷をカバーするためだけに使用しているわけではありません。
リレーショナルデータベースは、完全な読み取り/書き込みを並行して実行するのが最も難しい項目の1つです。
オースティンのStackOverflow DevDaysでダミアンカッツがCouchDBについて話しているのを見ました。彼の作成の主な焦点の1つはこれらの並列インスタンスでした。これは初日から焦点となっているため、水平方向のスケーリングを活用する能力がはるかに高くなります。
垂直スケーリング
垂直スケーリングはその逆であり、外にではなく構築します。購入して、購入できる最も強力なハードウェアを購入し、アプリケーション、データベースなどをその上に配置します。
実世界
もちろん、どちらにも長所と短所があります。多くの場合、これら2つの組み合わせが最終的なソリューションとして使用されます。
大規模なハードウェアでリアルタイムデータの書き込みと読み取りを行うプライマリデータベースがあるとします。次に、より重いデータ分析とレポートのために、データベースの読み取り専用コピーを配布しました。最新の状態であることがそれほど重要ではありません。次に、フロントエンドWebアプリケーションがロードバランサーの背後にある複数のWebサーバーで実行されている可能性があります。
水平スケーリングは、大量の書き込みと並列読み取りを処理する必要があるアプリケーションが必要な場合に最適です。大量のトラフィックがあり、これを記録する必要がある、または多数のイベントを記録する必要があるWebサイトを考えてみてください。
最大の利点は、一般的なハードウェアを使用して水平方向のスケーリングを行うことができ、垂直方向のスケーリングを使用して既存のボックスをより大きくしようとすることができることはほとんどないことです。
従来のRDBMSはさまざまな理由(ここではACIDであるという事実を含む)で失敗し、NoSQLソリューションは水平方向に簡単にスケーリングできるためここでは優れていますが、それは別の話です(RDBMS/SQLとNoSQLの比較)。
業界の一部の人々は同じことを意味するために異なる用語を使用しています: