Helix Coreサーバ管理者ガイド: 基本 (2019.1)

外部ファイル転送のためのトリガ

Helix Coreサーバ統合アーキテクチャを使用すると、Helix Coreサーバをサードパーティのアクセラレーションソフトウェアと統合して、待機時間が長いネットワークでアーカイブファイルを高速で転送できます。この機能は、次の2つのアプローチで外部アーカイブ転送をサポートします。

レプリカアーカイブ・プルスレッド

外部転送でレプリカアーカイブ・プルスレッドを使用するには、次の手順に従います。

1. 次のサーバ構成可能変数を設定します。

p4 configure set replica#pull.trigger.dir=/tmp/trigger
p4 configure set replica#lbr.replica.notransfer=1
p4 configure set lbr.autocompress=1

pull.trigger.dir構成可能変数は、プルスレッドがプルアーカイブトリガに%archiveList%としてパスする一時ファイルの書き込み場所を指定します。

注意

レプリカでインライン転送を無効にするには、lbr.replica.notransfer=1を設定します。

タイプtextのファイルを外部アーカイブ転送の候補にするには、lbr.autocompress=1を設定します。

2. アーカイブ転送を実行するトリガスクリプトを指定するために、トリガテーブルでプルアーカイブトリガを定義します。

externalPull pull-archive pull "pull.sh %archiveList%"

ここで%archiveList%は転送するファイル一覧が格納されている一時ファイルの名前を表します。

3. --triggerオプションを使用してレプリカアーカイブプルスレッドを構成します。

p4 configure set replica#startup.2="pull -u -i 1 --trigger --batch=10"

注意

任意の--min-sizeおよび--max-sizeオプションを使用すると、異なるサイズのファイルごとにアーカイブプルスレッドを分けることができます。以下に例を示します。

p4 configure set replica#startup.3="pull -u -i 1 --trigger --batch=5 --min-size=8192"

はトリガでサイズの小さなファイルを無視するよう指定します。

サイズ単位はバイトですが、K、M、G、T修飾子も使用できます。

重要

サイズの小さなファイルを標準アーカイブプルスレッドで扱い、よりサイズの大きいファイルを外部ファイル転送で扱うには、外部転送を使用するアーカイブプルスレッドと一緒に標準アーカイブプルスレッドを構成します。以下に例を示します。

p4 configure set replica#startup.4="pull -u -i 1 --batch=1000 --min-size=1 --max-size=8K"

はサイズの小さなファイルの転送を外部ソフトウェアを仕様せず行うよう指定します。

ヒント

長い遅延が発生する構成の場合は、このフラグに大きな--batch値を設定すると、サイズの小さなファイルを大量に処理する際に、アーカイブの転送速度が上がる可能性があります。

エッジサーバのサブミット

エッジサーバからコミットサーバのサブミットで外部転送を使用するには、次の手順に従います。

  1. rpl.submit.nocopy=1を設定してデフォルトのサブミットアーカイブのコピーを無効にします。

    p4 configure set rpl.submit.nocopy=1
  2. edge-contentトリガを定義します。

    edgeTransfer edge-content //... "submit.sh %changelist% %serverroot%"
  3. edge-contentトリガが一時ファイルに書き込む必要がある場合は、エッジサーバのpull.trigger.dir構成可能変数を設定します。

    p4 configure set edge#pull.trigger.dir=/tmp/edge-trigger

    次に、edge-contentトリガのトリガテーブルのエントリを%triggerdir%でアップデートして、構成済みの一時的な格納場所をトリガにパスします。

    edgeTransfer edge-content //... "submit.sh %changelist% %serverroot% %triggerdir%"
ヒント

トリガサンプルと詳細については、サポートナレッジベースの記事「pull-archiveおよびedge-contentトリガを使用した外部アーカイブ転送」を参照してください。