During a crash recovery or a database mirroring failover, SQL Server Enterprise Edition (or a Developer Edition or an Evaluation Edition, both of which behave exactly like the Enterprise does. The only difference among them three is their licensing.) let users access the database before the full recovery process finishes (i.e. after the redo phase has finished and just before the undo phase begins.) achieving what is known as Fast Recovery. Fast recovery is possible because transactions that were uncommitted when the crash occurred reacquire whatever locks they held before the crash. While these transactions are being rolled back, their locks protect them from interference by concurrent users which might be accessing the data already.
This post is part of the a series I decided to call “Understanding the value of the Enterprise Edition, one feature at a time” which I started in September 2011 and will grow on a weekly basis, having a new post incorporated to the family every Friday.