Download presentation
Presentation is loading. Please wait.
Published byかずき みうら Modified 約 8 年前
1
演習3 米澤研究室 発表2 山崎孝裕
2
主な内容 分散動的サーバモデル(復習) 掲示板システムの問題点と仮定 掲示板システムの大まかな動き(細かい エラー処理は考慮しない)
3
分散動的サーバモデル 従来の Client/Server モデルにおいて特定のサー バがやっていた処理の一部を、 P2P オーバレイ 上の複数のノードに処理をさせる。 P2P 上に構築された分散的な Client/Server モデ ルということができる。 → 目的は負荷の分散。高い秘匿性ではない。 P2P ノードがサーバの肩代わりをするため、 ノードの動的参加・脱退を意識する必要があ る。
4
掲示板システム(1) ユーザがスレッドを立て、スレッドにレ スを書き込むという形の掲示板を想定す る。 スレッドの管理は動的に決定され、ある ノードがそのスレッドへの書き込み・読 み込みを管理するサーバとなる。 どのスレッドをどのノードが現在管理し ているかの情報は、中央管理サーバが 持っている。
5
掲示板システム(2) 中央管理サーバが落ちることはない、と仮定 する。 実際に信頼性の高いシステムを構築する場合は、中 央管理サーバを多重化するなどの工夫が必要となる。 負荷分散のため、中央管理サーバを分散処理させる ことも考えられうる。 スレッドは特定のノードが所有する、という わけではない。 スレッドを立てたノードが落ちても、常にスレッド への書き込み・読み込みはできる。
6
問題点と仮定(1) 疑問 「 P2P オーバレイから全てのノードが脱退した場合、 スレッドデータを誰が持つのか?」 「次に P2P オーバレイに参加したノードは最新の データをどこからとってくるのか?」 常に生きていることを仮定した中央データ サーバにデータを置いておくことで一応の解 決はできる(?) 次に参加するノードは中央データサーバから データをもらってきて、そのデータの管理者 となる。
7
問題点と仮定(2) そもそも、参加ノードがゼロになってしまう ことがあるような参加ノード数が極端に少な いネットワークならば、分散させる必要はな い。 → 従来の Client/Server モデルでも十分。 上記のような問題がおきるのは特殊ケースと して別に扱い、通常時は起きないものと仮定 する。 分散動的サーバとして動くノードの数は、ク ライアントとしてのみ動くノードの数に比べ て十分に小さいものとする。
8
掲示板の規模の例 1 レス = 500Byte 1 スレッド = 300 レス = 150KB 1 掲示板 = 1,000 スレッド = 150MB 100,000 レス /day ≒ 1 レス /sec 数十~数百スレッド /day ※ 2ちゃんねるの大き目の板を参考に推 定 2ちゃんねる http://www6.big.or.jp/~beyond/bbsnews/
9
分散サーバと分散サーバ群 中央管理サーバは、新規に分散サーバ郡が必 要だと判断したとき、現在分散サーバでない N 個のノードを分散サーバに任命する。この N 個 の分散サーバの集まりを分散サーバ群と呼ぶ。 分散サーバ群の各分散サーバには 1 からの優先 度が順に割り振られている。 優先度 1 の分散サーバは分散メインサーバと呼 ばれ、スレッドへの管理・変更を行う。 優先度が 2 ~ N の分散サーバは分散サブサーバ と呼ばれ、データのコピーを常に持つ。
10
保持データ 中央管理サーバ スレッドがどの分散サーバ群に属するかの表を持つ。 各分散サーバ群の分散サーバの IP アドレスを持つ。 分散サーバ 同じ分散サーバ群に属するノードの優先度と IP アド レスを保持している。 分散サーバ群に割り当てられたスレッドデータを、 全ての各分散サーバが持つ
11
システムの動き 分散サーバの動的指定 メインサーバの引き継ぎ サブサーバの補充 スレッドとレスの管理 スレッドの参照 レスの書き込み スレッドの作成 スケーラビリティの確保 分散サーバ群の分割と統合
12
メインサーバの引き継ぎ 分散サーバはサーバ群に属する他のサーバと 一定間隔で互いの存在を確認しあう。 メインサーバの存在が確認できなかった場合、 サブサーバの優先度が繰り上げられ、優先度 が 2 であったサブサーバが優先度 1 となりメイ ンサーバに昇格する。 サブサーバの存在が確認できなかった場合、 そのサーバより小さい優先度を持つサブサー バの優先度が繰り上げられる。
13
サブサーバの補充 分散サーバ群のサーバ数がノードの脱退 によって N より小さくなった場合、メイ ンサーバは中央管理サーバに新たにサブ サーバを要求し、割り当てられたサブ サーバを分散サーバ群に組み込み、優先 度を割りあてる。 新たに分散サーバに割り当てられたノー ドは、スレッドデータを他の分散サーバ からもらいコピーを作成する。
14
スレッドの参照 スレッドがどの分散サーバ群に属するか の情報は中央管理サーバが持っている。 クライアントはスレッドの分散サーバ群 を中央管理サーバに問い合わせてノード アドレスを取得する。 分散サーバ群の任意のノードにスレッド データを要求することで、データを取得 できる。
15
レスの書き込み スレッドの属する分散サーバ群のメインサー バに対して、レス書き込み要求を送信する。 メインサーバは優先度 2 のサブサーバに対して 書き込みデータを送信し、受信したサブサー バは次の優先度のサブサーバにデータを送信 する。 最後に優先度 N のサブサーバは、メインサーバ にデータを送信し、メインサーバは書き込み データが正しいかどうかをチェックする。こ のチェックが終わった時点で正式に書き込み が完了したこととなる。
16
スレッドの作成 クライアントは、スレッド作成要求を中 央管理サーバに送信する。 中央管理サーバは新規スレッドの属する 分散サーバ群を決定し、そのサーバ群に スレッド作成命令を送信する。 新規スレッドの属する分散サーバ群が新 規のサーバ群である場合は、先にサーバ 群を作成する。
17
分散サーバ群の分割と統合 一つの分散サーバ群への負荷が大きい場 合、サーバ群の分割を行う。 中央管理サーバが分散サーバになってい ない N 個のノードを選出する。 これともとのサーバ群のサーバとを半々 に混ぜ、新規サーバに分割されたスレッ ドデータをコピーする。
18
来週の予定 各処理の状態遷移図 各処理の各状態でノードがダウンしたと きなどの細かいエラー処理 その他
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.