Tom Lane wrote:
Jaime Casanova <jcasa...@systemguards.com.ec> writes:
i haven't made any performance tests but it should gain something :),
maybe someone can make those tests?

The argument for changing this at all is only that it will improve
performance, so I'd like some independent confirmation that it does.
I've done a little review of this myself, and I'm not quite happy with how this patch was 
delivered to us.  The bar for committing something that touches the WAL is really 
high--it needs to be a unquestionable win to touch that code.  The justification of 
"the patch makes the overall code a bit cleaner" is a hard sell on something 
that's hard to debug (triggering bad WAL situations at will isn't easy) and critical to 
the system.  If there's a clear performance improvement, that helps justify why it's 
worth working on.  Here's the original performance justification:

"Using the only XLogInsert-bound test case I know of, parallel COPY into a skinny, 
unindexed table, using 8 parallel copies on a 4 x dual-core x86_64 and with fsync turned 
off (to approxiamately simulate SSD, which I do not have), I get a speed improvement of 
2-4% with the patch over unpatched head."

That makes sense, and using this spec I could probably come up with the test 
program to reproduce this.  But I'm getting tired of doing that.  It's hard 
enough to reproduce performance changes when someone gives the exact 
configuration and test program they used.  If we're working with a verbal spec 
for how to reproduce the issues, forget about it--that's more than we can 
expect a reviewer to handle, and the odds of that whole thing ending well are 
low.

Jeff:  before we do anything else with your patch, I'd like to see a script of 
some sort that runs the test you describe above, everything changed in the 
postgresql.conf from the defaults, and the resulting raw numbers that come from 
it on your system that prove an improvement there--not just a summary of the 
change.  That's really mandatory for a performance patch.  If any reviewer 
who's interested can't just run something and get a report suggesting whether 
the patch helped or harmed results in five minutes, unless we really, really 
want your patch it's just going to stall at that point.  And unfortunately, in 
the case of something that touches the WAL path, we really don't want to change 
anything unless there's a quite good reason to do so.

I've also realized that "Patch LWlocks instrumentation" at 
http://archives.postgresql.org/message-id/op.uz8sfkxycke...@soyouz should have been 
evaluated as its own patch altogether.  I think that the test program you're suggesting 
also proves its utility though, so for now I'll keep them roped together.

Sorry this ended up so late in this CommitFest, just a series of unexpected 
stuff rippled down to you.  On the bright side, had you submitted this before 
the whole organized CF process started, you could have waited months longer to 
get the same feedback.


--
Greg Smith    2ndQuadrant   Baltimore, MD
PostgreSQL Training, Services and Support
g...@2ndquadrant.com  www.2ndQuadrant.com

Reply via email to