In checkpoints, move the fsync outside the snapshot transaction, allowing other threads to start evicting and reading sooner.
Record the snapshot transaction ID when writing a page to avoid writing multiple copies at the same snapshot.
Deal with eviction getting stuck.  Now that application threads don't try to evict pages they have no chance of writing, there is no point counting failures in application threads.  If the eviction server gives up without hitting its target, have the oldest transaction abort next time it tries to evict something.
Add a "maximum filesystem buffer cache" setting to files.  After doing the specified amount of I/O, use fadvise to tell the operating system to drop cached pages.
Clear the "stuck" flag at the beginning of an eviction walk.
Add a flush phase before checkpoint starts a transaction.  Only updates in between that phase and the real checkpoint need to be written inside the transaction.
Checkpoint all dirty pages: don't try to figure out which ones have already been written at the checkpoint's snapshot.  Use a read-committed transaction to flush dirty pages before the real checkpoint starts.
Merge branch 'develop' into checkpoint-perf
Fix a fat-fingered change: we always need to release our snapshot when the last cursor is closed, even for auto-commit transactions.
Track eviction progress explicitly.  Previously, we gave up if the cache didn't get smaller, but with enough read pressure from application threads, that check was insufficient.
Don't wait for pages when doing a checkpoint pre-flush.
Make sure we don't miss a forced eviction request due to a race.
Use #ifdef, not #if for HAVE_POSIX_FADVISE, autoconf doesn't define
features it doesn't find to 0, it doesn't define them at all.
Remove unused variable.
Attempt to avoid test/format getting stuck: check if the cache is full before
transactions start, and check the "stuck" flag if session->txn has been
hijacked for evection.
Allow a cache full check without a btree handle.
My last attempt to fix a race in forcing eviction didn't work, try again.
Merge pull request #469 from wiredtiger/checkpoint-perf

Changes to minimize the impact of checkpoints on other threads.
bt_evict.c:395:4: error: 'force_btree' may be used uninitialized in this function
Don't try to sync read-only files.