-
Improvement
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 1.554.2, perforce plugin 1.3.27, RHEL 5.5
It would be much more efficient to have an option for Jenkins to delete the workspace at the end of the build job. While the Jenkins perforce plugin is really good about creating and managing workspaces, currently it ends up creating lots of clients/workspaces without cleaning any up. Since the perforce server has to track a lot of metadata on each client workspace (records on each of the files that are checked out), it can severely limit the scalability of the Jenkins/perforce plugin using workspace management.
In a production atmosphere with hundreds to thousands of jobs that can run on different nodes, the perforce server can even run out of RAM loading all the client records into memory. This often leads to the perforce admin hunting down members of the devops team.
Unfortunately, clients need to be preserved in order for subsequent syncs to be more efficient. Deleting them at the end of the job would cause every run to sync everything from scratch, which is a massive waste of time and bandwidth. It's far more efficient to just keep them around.