Have pages point at their spinlock rather than keep an index into an array.  Also allocate a contiguous block of locks rather than adding an extra indirection.
Once we enter an LSM tree, we are "busy" for the purposes of cache full checks.
Avoid reading a page that is being evicted when walking with WT_WALK_CACHE set.
Improve condition wait fast paths using atomic compare-and-swaps.
Further refine condition variables: keep a count of waiters (or -1 for a signalled condvar with no waiters).