-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
@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:
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.