Use patterns (paths, task streams)
Server performance benefits from the following.
- Short paths and names for depot files. The file names are the
leading portion of the key in several important
db.*
files, such asdb.rev
,
, anddb.revhx
db.integed
. - Task streams, when appropriate for smaller tasks, such as fixing a bug. Task streams are a way to keep repository metadata to a minimum. A task stream is a lightweight, short-lived stream that only promotes edited files to the repository. The Server tracks branched (copied) files in a set of shadow tables (db.revtx, db.integtx) that are removed when the task stream is deleted. See Task streams in Helix Core Command-Line (P4) Guide and p4 stream in Helix Core Command-Line (P4) Reference.Tip
Minimize the frequent creation of full branches because they increase the amount of Server metadata. This results in more levels within the
db.*
file B-trees, more key comparisons, and more I/O requests to traverse to the leaf pages. Also, reading and writing large amounts of metadata might affect the filesystem cache to the detriment of other Server operations. - If you are not using task streams, consider branching only the subset of files needed for a given bug fix.
- Consider fixing multiple bug fixes on a single branch.