Subject | Re: [firebird-support] Re: Can't find shared latch error |
---|---|
Author | Ann W. Harrison |
Post date | 2006-01-21T21:55:19Z |
I wrote
I'm not as familiar with the way SuperServer manages its cache
as I am with Classic and Vulcan. However, when a transaction
makes a change to a page, it gets a very transient exclusive lock
(latch) to make its change, then releases it. The page can stay
in cache until the transaction commits, but the transaction won't
hold a lock (latch) on it.
Similarly, a transaction gets a shared lock (latch) on a page
while reading. Those locks can be released when the transaction
goes to read a different page or do anything else... Now if
the probably actually were with having 20 or more readers on a
page, we'd see it all the time.
So I'm perplexed.
Regards,
Ann
>>On the other hand, you might hit that limit if eachBut the problem is unlikely to have anything to do with writing -
>>transaction modified a different record and all the records
>>happened to be on the same page. But, as I said, I haven't
>>tracked through all the code to see where the limit is
>>enforced.
I'm not as familiar with the way SuperServer manages its cache
as I am with Classic and Vulcan. However, when a transaction
makes a change to a page, it gets a very transient exclusive lock
(latch) to make its change, then releases it. The page can stay
in cache until the transaction commits, but the transaction won't
hold a lock (latch) on it.
Similarly, a transaction gets a shared lock (latch) on a page
while reading. Those locks can be released when the transaction
goes to read a different page or do anything else... Now if
the probably actually were with having 20 or more readers on a
page, we'd see it all the time.
So I'm perplexed.
Regards,
Ann