September 25, 2009

Slow server response? Upgrade...


Q: Are you having problems with your server taking a long time to respond or seeing periods of time where the server doesn't seem to respond?

A: Check to see if your server is 2007.3 or earlier. If it is, you should upgrade to a later release of the Perforce server.


Prior to 2008.1, certain commands run against a server with a large amount of metadata could cause what is know as a wedge. It is a situation where the long running process has a lock on a db file that a subsequent command needs. The later command starts off grabbing locks on a commonly used db file, such as db.domain, but then can't get the lock on the db used by the long running command, so it waits for the long running to finish to get that last lock. In the mean time, other commands are now blocked because they can't get to db.domain, so all the commands start backing up and server wedges until the long running command finishes.

Starting in 2008.1, the locking mechanism was changed where this situation is avoided. The long running commands are still there, but the subsequent commands go back and release the locks they were holding so other commands can continue to run. The command that needs the lock on the same table as the long running command keeps trying until it can get all the locks that it needs without locking up the whole server.