【システム構成】拡張性の切り札!「シェアードナッシング・アーキテクチャ」|情報処理問題1000本ノック
膨大なデータを扱う現代のシステムでは、1台の性能を上げる(スケールアップ)よりも、台数を増やして性能を上げる(スケールアウト)設計が主流です。その中核となる「共有しない」設計思想を攻略しましょう。
1. 問題:データベースの分散構成
【 問題 】 複数のノード(サーバ)で構成されるシステムにおいて、各ノードが自身のCPU、メモリ、およびディスク(データベース)を専有し、他のノードとリソースを共有せずに独立して処理を行うアーキテクチャを何と呼ぶでしょうか?
ア、シェアードディスク イ、シェアードナッシング ウ、メインフレーム エ、密結合マルチプロセッサ
2. 正解:システム構成要素に関する正解
正解: イ、シェアードナッシング
3. 解説:リソースの競合を徹底的に排除する
シェアードナッシング(Shared Nothing)は、その名の通り「何も共有しない」構成です。データベースを物理的・論理的に分離し、各プロセスが自分の担当するデータだけを処理します。
■ 独立したリソース
・各ノードが「CPU+メモリ+ディスク」のセットを持ち、自分専用のデータベースを扱います。
■ 高いスケーラビリティ
・リソースの奪い合い(排他制御の待ち時間)が発生しにくいため、ノードを増やした分だけ直線的に性能が向上しやすくなります。
■ 障害の局所化
・1つのノードが故障しても、他のノードのリソースは独立しているため、システム全体が停止するリスクを抑えられます。
★ シェアードディスク:複数のノードで1つの大きなディスク(DB)を共有する方式。データの整合性は取りやすいが、ディスクアクセスがボトルネックになりやすい。
★ パーティショニング:データを特定の規則で分割して各ノードに配置する技術。シェアードナッシングを実現するための重要な要素です。
1. 理解のコツ: 「1つの大きなピザをみんなで囲んで食べる(シェアードディスク)」のではなく、「それぞれが自分の弁当箱を持っている(シェアードナッシング)」状態をイメージしてください。自分の弁当を食べるだけなら、隣の人と手がぶつかる心配(競合)がなく、人数が増えてもスムーズに食事が進みます。
2. 試験対策の視点: 「スケーラビリティ(拡張性)」や「ノードの追加による性能向上」という文脈でよく出題されます。また、Google CloudのAlloyDBやTiDBなどの最新データベースも、内部的にはこの分散思想を高度に応用しているため、実務でも非常に重要な概念です。
4. まとめ
「DBを分離し、プロセスごとに独立して利用する」。これがシェアードナッシングです。リソースの競合という壁を壊し、無限に近い拡張性を実現するための現代的なシステム構成であることを押さえておきましょう!