シェアード・ナッシング・アーキテクチャとは
シェアード・ナッシング・アーキテクチャ(Shared Nothing Architecture、SN)は、
分散コンピューティングにおいて、各ノード(
コンピュータ)がネットワーク以外でリソースを共有しない設計概念です。各ノードは完全に独立しており、自律的に動作します。この設計により、システム全体に影響を与える単一の競合点やボトルネックを排除することが可能になります。
概要
このアーキテクチャは、特に大規模な状態データを中央に集約するシステムと対比されることが多いです。しかし、その適用範囲は
データベースや
アプリケーションサーバーなど、あらゆる単一競合箇所を排除することに及びます。例えば、
データベース管理システム(DBMS)の世界では、Oracle Databaseがシェアード・ディスク・モデルを採用しているのに対し、DB2の分散システムにおけるPE、EEE、DPFなどはシェアード・ナッシング・モデルに分類されます。
この概念は、ウェブシステムの分野で頻繁に議論されていますが、その起源はウェブ以前に遡ります。1986年には、UCバークレー大学の
マイケル・ストーンブレーカーが
データベースに関する論文でこの用語を使用しており、それ以前にも存在していた可能性があります。
シェアード・ナッシング・アーキテクチャは、特にウェブ開発において
スケーラビリティの観点から重要視されています。
Googleが示すように、このモデルを採用したシステムは、安価な
コンピュータを追加することでほぼ無限にスケールアップすることが可能です。これは、システム全体の処理速度を低下させる単一のボトルネックが存在しないためです。
Googleでは、このアプローチを「シャーディング(sharding)」と呼んでいます。
一般的に、シェアード・ナッシング・モデルでは、データは複数の
データベースノードに分散されます。これには、ユーザーやクエリごとに異なる
コンピュータを割り当てる方法や、同期プロトコルを用いて全てのノードにアプリケーションデータのコピーを持たせる方法があります。後者は
データベースシャーディングとして知られています。
議論点
多数の独立したウェブノードと、単一の共有
データベース(クラスタ化されている場合も含む)を持つウェブアプリケーションを、シェアード・ナッシング・モデルと呼ぶべきかについては議論があります。状態を保持するアプリケーションでこのモデルを実現する方法として、データグリッド(分散キャッシュとも呼ばれる)を使用する方法がありますが、この場合、中央
データベースが
単一障害点(SPOF)となる可能性があります。
データウェアハウスでの利用
シェアード・ナッシング・アーキテクチャは、データウェアハウスの領域で広く採用されています。シェアード・ナッシング方式と共有ディスク方式のどちらが優れているかについての議論は続いていますが、シェアード・ナッシング方式は、異なるパーティションに存在するデータセットに対する結合を含むクエリでは、共有ディスク方式よりも時間がかかるものの、
スケーラビリティにおいては優位性があります。
関連事項
参考文献
- - Michael Stonebraker (UC Berkeley), The Case for Shared Nothing Architecture (PDF). Database Engineering, Volume 9, Number 1 (1986).