福冨諭の福冨論

RSSリーダーではこちらをどうぞ→https://feeds.feedburner.com/fuktommy

大規模な運用

Winnyでは「上流と下流」と「クラスタリング」によって大規模な運用に対応しています。新月にも(Winnyと比べて簡易的ではありますが)同様の仕組みがあります。

まず上流と下流ですが、新月ネットワークの概観 - fuktommyの日記の図のように、ノードや閲覧者は3つの層に分かれています。現在のところノード数が少ないため機能していないのですが、初期ノード群は多くのリンクを持ち、ネットワークの中心に位置します。将来的には高速回線のノードをこれにあてるつもりです。

新月には明示的なクラスタリングはありませんが、共通する仮想ファイルを持つノード同士が隣接しやすくなるように実装しています。これにより書き込みメッセージの伝播が、その仮想ファイルを持つノードに優先して行なわれるようになります。利点は2つあります。

1つは書き込みメッセージが同じ仮想ファイルを持つノード群に伝わる時間の合計が小さくなることです。。書き込みが伝播していく様子 - fuktommyの日記の図では、オレンジのノードに書き込みメッセージが伝播したら、その後はどんなにゆっくり伝播しても問題ないわけです。ならばオレンジのノードはできるだけ赤のノードに近い方がよいのです。

もう1つは複数のノードが同じ書き込みを伝播させるので負荷が分散することです。同じ図ではオレンジのノードからの伝播(黄緑の矢印)があります。オレンジが一番右にあったと仮定してください。すると黄緑の矢印は表われません。もし同じように右端にその仮想ファイルを持つノードがあったとすると、その全てが赤いノードに問い合わせを行います。これでは赤いノードに負荷がかかります。