シェアード・ナッシング・アーキテクチャ(英語: shared nothing architecture、SN)とは、分散コンピューティングにおいて、各ノード(コンピュータ)がネットワークを除いてリソースを共有しておらず、それぞれが独立しており、自律的であり、システムにおいて単一競合箇所が無い物を指す。
概要
シェアード・ナッシング・モデルは通常は、大規模な状態(state)データを中央に集中的に格納するシステムと対比されるが、これはデータベースやアプリケーションサーバなど、その他の単一競合箇所のいずれについても適用される。
例えばDBMSの場合は、Oracle Databaseはシェアード・ディスク・モデル(DISK共有モデル)であり、DB2の分散系におけるPE、EEE、DPFなどはシェアード・ナッシング・モデルである。
シェアード・ナッシング・モデルは現在では、Webのシステムにおいて頻繁に議論されるが、この概念はウェブ以前からあり、UCバークレー大学のマイケル・ストーンブレーカーは1986年のデータベース論文においてこのキーワードを用いており、それ以前でも用いられた可能性もある。
シェアード・ナッシング・モデルはスケーラビリティの観点からウェブ開発において頻繁に用いられる。Google社が例示したように、純粋なシェアード・ナッシング・モデルシステムは廉価なコンピュータを追加することによりほぼ無限にスケールすることが可能である。それはシステムの処理速度を低下させる単一のボトルネックが無いからである。Google社はこれをshardingと呼んでいる。典型的なシェアード・ナッシング・モデルシステムにおいては、データは異なるデータベースの多数のノードに分散されるか(この場合ユーザやクエリごとに異なるコンピュータを割り当てる)、あるいは何らかの同期化プロトコルを用い、全てのノードにアプリケーションデータのコピーを持たせる形をとる。これはdatabase shardingと呼ばれるものである。
多数の独立したウェブノードと単一の共有データベース((クラスタ化されていてもいなくても)を持つウェブアプリケーションを、シェアード・ナッシング・モデルと呼ぶべきかについては議論の余地がある。(中央データベースにおいて状態を保持する)状態を持つアプリケーションにおいてシェアード・ナッシング・モデルを実現する方法として、データグリッドを用いる方法がある。これは分散キャッシュと呼ばれることもある。この場合は中央データベースが単一障害点(SPOF、Single Point of Failure)となる。
シェアード・ナッシング・アーキテクチャはデータウェアハウスの領域で広く用いられている。シェアード・ナッシングのアプローチと共有ディスク方式でどちらが優れているかの論争が行われている。シェアード・ナッシング・アーキテクチャは異なるパーティションに存在するデータセットに対する結合を含むような問合せに対しては共有ディスク方式よりも時間がかかってしまうが,スケーラビリティ―は高い。
関連項目
参考文献