wiredtiger/wiredtiger — pull request #651 by keithbostic (2013-08-28 18:24:56+00:00)
Title: Tracking cleanup

@michaelcahill, @agorrod

I'm going to take a run at speeding up our handling over overflow items, based on #330.

As you know, the problem is if we're tracking overflow objects in reconciliation, we do linear walks/searches of potentially (really!) big lists of overflow items.

The first step was to separate out the list of addresses we're tracking for discard from the list of overflow objects (the list of addresses is never searched or processed, it's a list of 1 or 2 addresses that get discarded when the page is successfully reconciled). That's the list that's making us allocate the tracking memory most of the time, and we only need on the order of 20B since a typical address is 7-8 bytes when using a POSIX file system.

I've committed that change and the next step will be to replace the current overflow tracking software with some kind of skiplist based on the overflow item's hash.