wiredtiger/wiredtiger — pull request #765 by keithbostic (2013-11-17 20:45:51+00:00)
Title: Moving the WT_EXT structure cache to the session handle.

@michaelcahill: I've been looking at contention in the block manager, and I found what I think may be an interesting path: when a block needs to be put onto a list, we need a WT_EXT structure for that purpose. We cache WT_EXT structures on a per-file basis, but when I run an wtperf update runner (for example, update-btree.wtperf) on an SSD, I'm seeing 500 to a thousand allocations a second during parts of the run, while holding the file write locked:

![report 010](https://f.cloud.github.com/assets/1393186/1559306/a731b574-4fc8-11e3-921b-d38767093439.png)

This change moves the WT_EXT structure cache into the WT_SESSION_IMPL handle so we can allocate those structures without holding the file's lock.