@michaelcahill: one comment about the wrapup calls -- I'm doing a pass through <b>all</b> of the skiplists in a couple of places, in order to remove entries.   I futzed a bit with code that would do it all in one pass, but that got ugly fast, so I ended up doing it in a brute force way.   Let me know if you've got a better approach.

We could also probably figure out if a pass is necessary (remember how many entries we have, and if the number we return to service is equal the number we started with, we're done)?   I didn't do that, either, I didn't figure we'd have many situations where we had enough overflow records that it was expensive to do the traversal, but none of them had changed from reconciliation-to-reconciliation.