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 are appropriate for smaller tasks, such as fixing a bug. Task streams are a way to keep repository metadata The data stored by Helix Core Server that describes the files in the depot, the current state of client workspaces, protections, users, labels, and branches. Metadata is stored in the server database and is separate from the archive files that users submit. to a minimum. A task stream is best used as 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.