Use patterns

Helix Server usage can affect performance. Usage patterns can have a direct effect on performance:

  • The depot filenames are the leading portion of the key in several important db.* files, such as db.rev, db.revhx, and db.integed. As the length of paths to depot filenames increase, performance decreases. We recommend short names when possible.
  • Rather than frequent creation of full branches:
    • Consider task streams. A task stream is a lightweight short-lived stream that only promotes edited files to the repository. See p4 stream.
    • 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.
    Tip

    The frequent creation of full branches increases the amount of 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 Helix Server tasks.