wiredtiger/wiredtiger — pull request #355 by michaelcahill (2012-10-10 02:44:52+00:00)
Title: Simplify eviction

These changes unify the check for the "cache full" into one call, shared by both reads an updates.

Update operations now check that the cache is not full before they start, which means we can avoid "forced eviction" of hot pages entirely. When the cache becomes full because of inserts, application threads will block before their next update operation, giving eviction time to proceed without forcefully locking a page.

Another change is to collect a fixed number of pages each time an eviction walk is triggered, independent of the number of open file handles. This should help in cases where eviction spends a lot of time collecting candidate pages that are then thrown away.