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
. - Limiting the increase of
Helix Core Server repository metadata The data stored by Helix Core Server that describes the file revisions in the depot, where they get their content from (see lazy copy), and the current state of client workspaces, protections, groups, users, labels, streams, and branches. Metadata is stored in the server database and is separate from the archive files that users submit.. Repository metadata increases can result 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.
Ways to limit the growth of metadata | |
---|---|
The use of task streams for limited tasks, such as fixing a bug or developing a small feature. Task streams can limit the growth of metadata because 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. You should delete or unload the task stream when its changes have been integrated. See Task streams in the Helix Core Command-Line (P4) Guide and p4 stream in the Helix Core Command-Line (P4) Reference. |
Minimal creation of full branches. Consider:
|