Andres Freund <andres@2ndquadrant.com> writes:
> On Sunday, September 30, 2012 10:33:28 PM Tom Lane wrote:
>> I'm still pretty desperately unhappy with your insistence on circularly
>> linked dlists. Not only does that make initialization problematic,
>> but now it's not even consistent with slists.
> We literally have tens of thousands list manipulation a second if the server is
> busy.
Tens of thousands, with maybe 1ns extra per call, adds up to what?
> I am really sorry for being stubborn here, but I changed to circular lists
> after profiling and finding that pipeline stalls & misprediced branches where
> the major thing I could change. Not sure how we can resolv this :(
I'm going to be stubborn too. I think you're allowing very small
micro-optimization arguments to contort the design of a fundamental data
structure, in a way that makes it harder to use. That's not a tradeoff
I like. Especially when the micro-optimization isn't even uniformly a
win. I remain of the opinion that the extra cycles spent on iteration
(which are real despite your denials) will outweigh any savings in list
alteration in many use-cases.
regards, tom lane