next up previous
Next: メタサーバ による分散並列実行 Up: メタサーバ Previous: Ninf サーバ の選択

メタサーバ 間の通信

メタサーバ は、最低でも一つの自分以外のメタサーバ を知っている。 メタサーバ 間での情報の共有のための通信は、 On demand で行なう。 すなわち、メタサーバ がリクエストを受けとった際に、そのリクエストを 処理することができる Ninf サーバ を知らなかった場合に、 他のメタサーバ に対して問い合わせを行なう。

この問い合わせを受けとった、メタサーバ が適切なNinf サーバ を 知らない場合には、さらに他のメタサーバ へ問い合わせを forward する。 このようにすることで、Ninf サーバ は、 最寄りのメタサーバ に対して登録するだけで、 他のメタサーバ からも参照されることができる。

ここで問題になるのは、メタサーバ が編目状のネットワークを 構成することから、問い合わせが重複してしまったり、いつまでも ネットワークの中を回り続けたりする可能性があることである。 これに対応するために、問い合わせには、ユニークなIDとカウンタを 設定した。 メタサーバ は、問い合わせの履歴を保持し、かつて処理したIDをもつ 問い合わせは無視する。 また、問い合わせを forward する際には、カウンタをデクリメントし、 カウンタが0になった場合には、それ以上の forward を行なわない。 これによって、問い合わせは失効するため、無限ループを構成することは ない。



Hidemoto Nakada
Tue Feb 20 18:17:47 JST 1996