使用頻度の低いメタデータをアンロードする
時間の経過と共に、Helixサーバにはアクティブな開発モードでなくなった古いプロジェクトに関連するメタデータが蓄積されます。大規模なサイトでは、一連の作業データ(特にdb.have
とdb.labels
テーブルに格納されたデータ)を減らすことにより、パフォーマンスを大幅に向上させることができます。
アンロードディポを作成する
//unload
という名前のアンロードディポを作成するには、p4
depot unload
と入力し、表示されるフォームに次のように入力します。
Depot: unload Type: unload Map: unloaded/...
この例では、アンロードされたメタデータはサーバルートの下にある(Map:
フィールドにより指定される)/unloaded
ディレクトリ内のフラットファイルに格納されます。
アンロードディポを作成した後は、p4
unload
とp4 reload
を使用して、環境内のワークスペースおよびラベルに関連するメタデータの処理方法を管理できます。
管理者によってunloadタイプのディポが作成されている状態でp4 -ztag infoコマンドを実行すると、「unloadSupport enabled」が出力として表示されます。unloadタイプのディポが作成されていない場合は、「unloadSupport disabled」が出力として表示されます。
古いクライアントワークスペース、ラベル、タスクストリームをアンロードする
p4 unload
コマンドは、使用頻度の低いメタデータをHelix Coreサーバ db.*
ファイルからアンロードディポ内のフラットファイルのセットへ転送します。
ユーザは、-c
フラグ、-l
フラグ、-s
フラグを使用して、自分が所有しているクライアントワークスペース、静的ラベル、タスクストリームをアンロードすることができます。例えば、ビルドを連続して開発する環境下で、ワークスペースやラベルを1ビルドにつき1つずつ作成するビルドスクリプトの保守担当者は、各ビルドの終了時にその都度ラベルをアンロードすることが推奨されます。
$ p4 unload -c oldworkspace
$ p4 unload -l oldlabel
同様に、開発者は使用し終えたタスクストリームをその都度アンロード(p4 unload -s
)または削除(oldtaskstream
p4 stream -d
)することが推奨されます。oldtaskstream
古くなり、使用されなくなったメタデータをまとめて管理するには、管理者は-a
、-al
、-ac
フラグを-d date
、-u
user
フラグのいずれか、または両方と併用します。これにより、特定のdate
より古いか、特定のuser
が所有する、あるいは両方の条件に該当するすべての静的ラベルおよびワークスペースをアンロードできます。
デフォルトでは、ロックが解除されたラベルまたはワークスペースしかアンロードされません。ロックされたラベルまたはワークスペースをアンロードするには、-L
フラグを使用します。
ワークスペースやラベルのアンロードまたはリロードを行うには、ワークスペースのhaveリストにあるすべてのファイル、当該ラベルのいずれか、または両方によってタグ付けされているファイルを、ユーザがスキャンできなくてはなりません。MaxScanrows
およびMaxResults
を十分な大きさの値に設定して(「複数グループに含まれるユーザを対象とする場合のMaxResults、MaxScanRowsおよびMaxLockTime」を参照してください)、ユーザがp4
unload
またはp4 reload
の操作にサポートを要求しなくて済むようにする必要があります。
アンロードされたデータへのアクセス
デフォルトでは、p4 clients
、p4
labels
、p4 files
、p4
sizes
、p4 fstat
などのHelixサーバコマンドは、アンロードされたメタデータを無視します。アンロードされたワークスペースやラベル(またはアンロードされたその他のメタデータ)を調べる必要のあるユーザは、それらのコマンドの使用時に-U
オプションを使用できます。詳細については、『Helix Core P4コマンドリファレンス』を参照してください。
ワークスペースとラベルをリロードする
アンロードされたメタデータをdb.have
テーブルまたはdb.labels
テーブルに戻すことが必要になった場合は、p4
reload
コマンドを使用します。