以下は下記原文 2004/06/12(JST)時点 の検証無し翻訳です。 原文は University of California より GFDL で配付されており、
この翻訳も GFDL に従います。
原文: Persistent file transfer
 
 
最終更新時刻 2006/03/01 01時11分 JST

パーシステントファイル転送

boinc.gif
Last modified 7:09 PM UTC, June 09 2004

ファイルのアップロードとダウンロードは、様々な 一時的失敗に遭遇する可能性があります。 たとえば: このような状況から効率的に回復するために、あるいは 回復みこみのない失敗 (permanent failure)が起きたと ある時点で判断するするために、 パーシステントファイル転送(persistent file transfer) と呼ぶ仕組みをBOINC では使います。

クラス 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週間)を現在時刻がすぎて しまったら、その転送を「回復みこみのない失敗」と分類します。 − 期限を表現する式は未稿 − こうなってしまうと、そのファイルを消して、スケジューリング・サーバへ 失敗を報告します。 − 報告の形式を記述するつもりだが、未稿 −


(訳注1):クライアントの状態ファイル/ client state file
client_state.xml のこと。

BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 
Copyright © 2005 University of California
Translated by JE2BWM.