#author("2025-04-15T05:42:15+00:00","default:iseki","iseki")
** キャッシュサーバの動作 [#oa9e9b4a]

*** キャッシュPUTサーバの起動 [#n4dbc88e]
 キャッシュサーバ([[sl_cache]])は,起動すると最初にキャッシュPUTサーバと呼ばれるプロセスを1個だけforkします.~
 キャッシュPUTサーバはキャッシュデータのDBへの保存を専門的に行うサーバです.キャッシュデータをキャッシュPUTサーバに集約して保存を行うのは2つの理由があります.
+データ保存時のファイルロックの問題を避けるため(書き込むプロセスが1個だけならファイルロックの問題は生じない).
+キャッシュPUTサーバへ接続できるのは localhost のみとし,これによりある程度のセキュリティを確保する.

*** UDP中継プロセスとのネゴシエーション [#y86b782b]
 リレーサーバ([[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中継プロセスからのリクエストを待ちます.

*** リクエストへの応答 [#vd8d5f17]



 


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS