When p4 edit
is called against a +l
file type on an edge server, communication with the commit server is required in the form of a rmt-ExclLock
call that executes on the commit server and does the following:
- Checks if the file in question is already locked
- If not already locked, writes an entry to db.excl to lock the file
While the rmt-ExclLock
is processing on the commit server, the p4 edit
on the edge goes into a journal wait state, waiting for the resulting commit journal transactions recorded in db.excl to be replicated into the edge server database.
When multiple files of type +l
are edited, a rmt-ExclLock
runs on the commit server for each +l
file processed and a journal wait is incurred for each file significantly slowing down the overall checkout time.
The p4 edit
command can be used with the undocumented -L
flag to speed up the overall checkout time when +l files are involved:
p4 edit -L [ files ]
the files are batched and processed as one argument which will cause only one journal wait improving the overall performance of the command.