ワークスペースをビルドファームレプリカにバインドする
この時点で2つのサーバが稼働しています。
master
というマスターサーバ、サーバIDはmaster-1666buildfarm1
というbuild-server
レプリカサーバ、サーバIDはbuilder-1667
-
クライアントワークスペースをビルドファームサーバにバインドします。
このサーバは
build-server
サービスを提供するように設定されているため、クライアントワークスペース(db.domain
とdb.view.rp
)のリストの独自のローカルコピーと、それぞれのhaveリスト(db.have.rp
)を保持します。レプリカサーバで、以下のp4 clientコマンドを使用してクライアントワークスペースを作成します。
$ p4 -c build0001 -p builder:1667 client build0001
ビルドファームレプリカ上で新しいワークスペースを作成する場合は、現在のクライアントワークスペースに、
builder:1667
で必要なServerIDに一致するServerIDが設定されている必要があります。ワークスペースbuild0001
はまだ作成されていないため、-c clientname
オプションを指定して、build0001
を現在のクライアントワークスペースとして手動で指定し、build0001
をp4 client
コマンドの引数として指定する必要があります。サポートナレッジベースの記事「ビルドファームクライアントの管理」を参照してください。p4 client
フォームが表示されたら、ServerID:
フィールドの値をbuilder-1667
に設定します。ServerIDを手動で設定しなかった場合は、フォームの保存時に自動的に保存されます。 -
バインドされたワークスペースを同期します。
クライアントワークスペース
build0001
はbuilder-1667
にバインドされているため、マスターサーバ上のユーザは影響を受けません。ただし、ビルドファームサーバ上のユーザはユーザ仕様を編集できるだけでなく、ユーザ仕様を同期することもできます。$ export P4PORT=builder:1667 $ export P4CLIENT=build0001 $ p4 sync
レプリカのhaveリストは更新されますが、更新内容がマスターに伝播されることはありません。マスターサーバ上のユーザは影響を受けません。
実際的なシナリオ:
- 組織内のビルドエンジニアが、ビルドファームサーバを直接ポイントするように
P4PORT
を設定し直すことにより、新しいサーバを使用するようにサイトのビルドシステムを設定します。マスターサーバに送信されたすべての変更について、継続的インテグレーションと自動化ビルドツールによってクライアントワークスペースの作成と同期が実行される環境であっても、マスターサーバのパフォーマンスが影響を受けることはありません。 - マスターサーバのデータベースに対する読み取り操作と書き込み操作が減るため、すべてのユーザについて、マスターサーバのパフォーマンスが向上します。
ビルドファームレプリカでは不要なデータベーステーブルがある場合は、p4 pullコマンドに対して、フィルタオプションの-F
と-T
を使用することをお勧めします。また、レプリカのp4
server
フォームの各フィールド(ArchiveDataFilter:
、RevisionDataFilter:
、ClientDataFilter:
)を指定することをお勧めします。
自動処理の負荷が1台のマシンのキャパシティを超えた場合は、追加のビルドファームサーバをいくつでも設定することができます。