キャッシュサーバ(sl_cache)は,起動すると最初にキャッシュPUTサーバと呼ばれるプロセスを1個だけforkします.
キャッシュPUTサーバはキャッシュデータのDBへの保存を専門的に行うサーバです.キャッシュデータをキャッシュPUTサーバに集約して保存を行うのは2つの理由があります.
リレーサーバ(sl_relay)が -cs, -cp または -cg オプション付で起動された場合,UDPの中継プロセス毎にキャッシュサーバ(sl_cache)にTCPによる接続を掛けてきます.UDP中継プロセスから接続を受けたキャッシュサーバはコントロール用プロセスをforkします.forkされたコントロール用プロセスはUDP中継プロセスとネゴシエーションを行い,それぞれの使用ポート番号や接続用のパスワードを交換します.
従ってキャッシュサーバのキャッシュコントロールプロセスは sl_relay のUDP中継プロセスと同じ数だけ起動されます.
sl_relay が -csまたは -cp オプション付で起動されている場合(PUTが有効の場合)は,キャッシュコントロールプロセスはキャッシュPUTサーバへの中継プロセスを forkします.このプロセスは sl_relay からキャッシュデータを受信し,キャッシュPUTサーバへそのまま転送します.
キャッシュコントロールプロセスはその後ループに入り,UDP中継プロセスからのリクエストを待ちます.