1. ホーム
  2. database

[解決済み] データベースの水平方向と垂直方向の拡大縮小の違い【終了しました

2022-03-24 21:36:57

質問

私はこれまで多くのNoSQLデータベースやSQLデータベースに出会ってきました。これらのデータベースの長所と短所を測るパラメータは様々で、スケーラビリティもその1つです。これらのデータベースを水平方向に拡張する場合と垂直方向に拡張する場合の違いは何でしょうか?

どのように解決するのか?

水平方向のスケーリングとは、マシンを追加することで拡張することです をリソースのプールに追加します。 垂直方向のスケーリングとは、既存のマシンにさらにパワー(CPU、RAM)を追加することでスケーリングすることです。 .

サーバーラックにあるマシンを想像していただくとわかりやすいと思います。 水平 方向に、より多くのリソースをマシンに追加します。 垂直 の方向へ移動します。

データベースの世界では、水平スケーリングはデータのパーティショニング、つまり各ノードがデータの一部だけを含むことに基づいて行われます。垂直スケーリングでは、データは単一のノード上に存在し、スケーリングはマルチコア、つまりマシンのCPUとRAMリソース間で負荷を分散することによって行われます。

水平スケーリングでは、既存のプールにマシンを追加することでダイナミックに拡張することが容易です。垂直スケーリングでは、1台のマシンの容量に制限されることが多く、その容量を超えて拡張するとダウンタイムが発生し、上限が決まってしまいます。

水平スケーリングの良い例としては、CassandraやMongoDBが挙げられます。 Google Cloud Spanner 垂直スケーリングの良い例は、MySQL - Amazon RDS (MySQLのクラウド版)です。これは、小さなマシンから大きなマシンへ切り替えることで、簡単に垂直方向のスケーリングを行う方法を提供します。このプロセスはしばしばダウンタイムを伴う。

インメモリデータグリッド GigaSpaces XAP , コヒーレンス などは、ディスクに縛られていないだけで、水平方向と垂直方向の両方のスケーリングに最適化されていることがよくあります。パーティショニングによる水平スケーリングとマルチコアサポートによる垂直スケーリング。

このテーマについては、私の以前の投稿で詳しく説明しています。 スケールアウトとスケールアップ そして NOSQLの代替品に隠された共通の原理