Mike Matrigali (JIRA) wrote:
The case I am trying to work out in my mind is the space reclamation thread. It gets latches on pages and loops through rows requesting zero duration locks to see if it can purge a row from a page. In the first case
the row we are requesting a lock on will never be purged as it is not possible 
for the reclaim space thread to
get a latch on a the page and purge the row we are waiting for a lock on (the 
lock request for an update lock
will fail because of our wait).  In the second case It can sneak in between the 
release of the latch and queue
of the waiting lock.

Looking at the code for purging deleted records, it does not seem to me that this operation uses the mechanism discussed here. As far as I can tell, latches are not released until the entire page has been processed. That is, the latch will not be released if the thread needs to wait for a lock.

--
Øystein

Reply via email to