Helix Coreサーバ管理者ガイド: マルチサイト展開 (2019.1)

ワークスペースをビルドファームレプリカにバインドする

この時点で2つのサーバが稼働しています。

  • masterというマスターサーバ、サーバIDはmaster-1666
  • buildfarm1というbuild-serverレプリカサーバ、サーバIDはbuilder-1667
  1. クライアントワークスペースをビルドファームサーバにバインドします。

    このサーバはbuild-serverサービスを提供するように設定されているため、クライアントワークスペース(db.domaindb.view.rp)のリストの独自のローカルコピーと、それぞれのhaveリスト(db.have.rp)を保持します。

    レプリカサーバで、以下のp4 clientコマンドを使用してクライアントワークスペースを作成します。

    $ p4 -c build0001 -p builder:1667 client build0001

    ビルドファームレプリカ上で新しいワークスペースを作成する場合は、現在のクライアントワークスペースに、builder:1667で必要なServerIDに一致するServerIDが設定されている必要があります。ワークスペースbuild0001はまだ作成されていないため、-c clientnameオプションを指定して、build0001を現在のクライアントワークスペースとして手動で指定し、build0001p4 clientコマンドの引数として指定する必要があります。サポートナレッジベースの記事「ビルドファームクライアントの管理」を参照してください。

    p4 clientフォームが表示されたら、ServerID:フィールドの値をbuilder-1667に設定します。ServerIDを手動で設定しなかった場合は、フォームの保存時に自動的に保存されます。

  2. バインドされたワークスペースを同期します。

    クライアントワークスペースbuild0001builder-1667にバインドされているため、マスターサーバ上のユーザは影響を受けません。ただし、ビルドファームサーバ上のユーザはユーザ仕様を編集できるだけでなく、ユーザ仕様を同期することもできます。

    $ export P4PORT=builder:1667
    $ export P4CLIENT=build0001
    $ p4 sync

    レプリカのhaveリストは更新されますが、更新内容がマスターに伝播されることはありません。マスターサーバ上のユーザは影響を受けません。

実際的なシナリオ:

  • 組織内のビルドエンジニアが、ビルドファームサーバを直接ポイントするようにP4PORTを設定し直すことにより、新しいサーバを使用するようにサイトのビルドシステムを設定します。マスターサーバに送信されたすべての変更について、継続的インテグレーションと自動化ビルドツールによってクライアントワークスペースの作成と同期が実行される環境であっても、マスターサーバのパフォーマンスが影響を受けることはありません。
  • マスターサーバのデータベースに対する読み取り操作と書き込み操作が減るため、すべてのユーザについて、マスターサーバのパフォーマンスが向上します。

ビルドファームレプリカでは不要なデータベーステーブルがある場合は、p4 pullコマンドに対して、フィルタオプションの-F-Tを使用することをお勧めします。また、レプリカのp4 serverフォームの各フィールド(ArchiveDataFilter:RevisionDataFilter:ClientDataFilter:)を指定することをお勧めします。

自動処理の負荷が1台のマシンのキャパシティを超えた場合は、追加のビルドファームサーバをいくつでも設定することができます。