IBM developerWorksから:クラウドレベルのデータ拡張性をNoSQLデータベースで提供
スケーラビリティは、非常に低いレイテンシで非常に高い要求率で非常に大きなデータベースをサポートできるシステムです。
NoSQLシステムには、多くの共通の設計機能があります。
- 多くのサーバーでスループットを水平方向にスケールアウトする機能。
- 単純な呼び出しレベルのインターフェースまたはプロトコル(SQLバインディングとは対照的)。
- 従来のほとんどのRDBMSのACIDトランザクションよりも弱い一貫性モデルのサポート。
- データストレージ用の分散インデックスとRAMの効率的な使用。
- 新しい属性またはデータスキーマを動的に定義する機能。
リレーショナルデータベースがスケーリングに最適ではない理由
一般に、リレーショナルデータベース管理システムは、何十年もの間「データの永続化と取得のための万能ソリューション」と見なされてきました。彼らは広範な研究開発の努力の結果成熟し、さまざまな事業領域で大規模な市場とソリューションを非常にうまく作成しました。
スケーラビリティと新しいアプリケーション要件に対する絶えず増大するニーズは、一部のWebスケールアプリケーションにおけるこの万能のアプローチに対する不満など、従来のRDBMSに新たな課題をもたらしました。これに対する答えは、リレーショナルデータベース管理システムの優位性に挑戦するように設計された低コストで高性能なデータベースソフトウェアの新世代です。NoSQLの動きの大きな理由は、Web、エンタープライズ、およびクラウドコンピューティングアプリケーションの実装が異なるとデータベースの要件が異なるためです。たとえば、すべてのアプリケーションが厳格なデータ整合性を必要とするわけではありません。
別の例:eBay、Amazon、Twitter、Facebookなどの大規模なWebサイトの場合、スケーラビリティと高可用性は妥協することができない重要な要件です。これらのアプリケーションの場合、わずかな停止でも重大な経済的影響をもたらし、顧客の信頼に影響を与える可能性があります。
DBA.SEについて:水平スケーリングとはどういう意味ですか?
水平スケーリングは、本質的にはアップではなくビルドアウトです。大型のサーバーを購入してすべての負荷をそのサーバーに移すのではなく、1台以上のサーバーを追加して負荷を分散します。
水平スケーリングは、サーバーで複数のインスタンスを同時に実行できる場合に使用されます。通常、1台のサーバーから2台のサーバーに移動するのは、2から5、10、50などに移動するのがはるかに困難です。
並列インスタンスの実行の問題に対処すると、Amazon EC2、RackspaceのCloud Service、GoGridなどの環境を最大限に活用できます。需要に応じてインスタンスを上下させることができるため、サーバーの電力を購入する必要がなくなりますそれらのピーク負荷をカバーするためだけに使用しているわけではありません。
リレーショナルデータベースは、完全な読み取り/書き込みを並行して実行するのが難しい項目の1つです。