Argh, I'm an idiot ... a big part of the problem with the original fork-based pgbench is that I'd rearranged the startup code without noticing a data dependency. You can't initialize the default scripts until you've gotten the correct value of "tps" by inspecting the database. What was happening was that it was making tps = 1 always, which meant that every transaction tried to update the bid = 1 row of "branches", which resulted in strict serialization of transactions. Performance of the attached version is markedly better ;-)
regards, tom lane
binWC4je6cRbH.bin
Description: pgbench.c
---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly