> But the snapshots only are grabbing the xids from each proc, right?
> Doesn't seem that would take very long.
>
> If this is the bottleneck, maybe we need a shared proc lock.
>
I had a hard day testing and verifying this kind of stuff. We have run
several hundred benchmarks at the customer using many different
settings. SERIALIZABLE was the key to high-performance. I have run
dozens of different benchmarks today (cursors, simple selects,
concurrent stuff, ...). I have not found a difference. I have no idea
why the customer's system was so much faster in SERIALIZABLE mode. They
use a native C++ implementation of the FE/BE protocol but as far as I
have seen their database layer does not care about transaction isolation
too much.
I will continue testing this kind of stuff because this is a very
strange yet important issue.
I will try to get some code from the customer. This is mostly
non-disclosure stuff so I am not sure what we can use. I just wanted to
ask if somebody has a reasonable explanation and if somebody can verify
this behaviour.
Maybe we will find the reason some day :(.
Sorry that I cannot provide more information at the moment.
Regards,
Hans
--
Cybertec Geschwinde u Schoenig
Ludo-Hartmannplatz 1/14, A-1160 Vienna, Austria
Tel: +43/2952/30706; +43/664/233 90 75
www.cybertec.at, www.postgresql.at, kernel.cybertec.at