パーシステントファイル転送 |
Last modified 7:09 PM UTC, June 09 2004 |
クラス FILE_XFER が、特定のデータサーバへの転送セションを1つ、 カプセル化します。 もし、そのファイルがすでに部分的に転送されていたなら、 FILE_XFER は適切なところから、その転送を再開します。
クラス PERS_FILE_XFER は、1つのパーシステントファイル転送を カプセル化します。 その中には、連続した FILE_XFER の [インスタンス]を含むことがあり、それらは異なるデータサーバへの 転送かもしれません。
パーシステントファイル転送にあるファイルが関与すると、 その状態は、クライアント状態ファイル 訳注1 の中に下記のXML要素として、取っておかれます。 (<file_info> 要素の中に入ります):
<persistent_file_xfer>
<num_retries>2</num_retries>
<first_request_time>1030665600</first_request_time>
<next_request_time>1030665725</next_request_time>
</persistent_file_xfer>
一時的な失敗があったときは、 コア・クライアントは、 num_retries を1つ増やし、 ランダム因子を含む指数バックオフ方式に従い、 次の next_request_time を下記の式で計算します。
next_request_time = (現在時刻) + max(MIN_DELAY, min(MAX_DELAY, exp(rand(0,1) * num_retries)))ここで、MIN_DELAY は 1 分、MAX_DELAY は 4 時間です。 [exp()は指数関数、rand(0,1)は0〜1の間の一様分布乱数]
クライアントは、その転送が長引いて下記の値
(デフォルトは開始から2週間)を現在時刻がすぎて
しまったら、その転送を「回復みこみのない失敗」と分類します。
− 期限を表現する式は未稿 −
こうなってしまうと、そのファイルを消して、スケジューリング・サーバへ
失敗を報告します。
− 報告の形式を記述するつもりだが、未稿 −