[Ur] TechEmpower Benchmarks

Adam Chlipala adamc at csail.mit.edu
Fri Nov 29 08:20:02 EST 2013


On 11/27/2013 03:52 PM, Adam Chlipala wrote:
> One other change I've just pushed is inspired by the last few error 
> messages in the Postgres-related log you showed us.  These look 
> suspiciously like optimistic concurrency faults, which should be 
> handled by retrying transactions (as the HINTs suggest).  I had 
> already implemented checks for a few codes that I know signify such a 
> state, but I may be missing one; so I added printing of the error code 
> in the log messages.  This means I should be able to use future logs 
> of this kind to figure out which cases should be added to the Ur/Web 
> Postgres code.

I looked into this further and realized that the problem was simple: 
There weren't any checks for concurrency faults for SELECTs; they were 
only there for database updates.  My suspicion (or excuse?) is that 
Postgres never generated SELECT concurrency faults at the time I wrote 
the code, but they've since been added, as part of the awesome truly 
serializable transactions in version 9.1 and up.

I've pushed what I hope is a fix, which I haven't verified yet, since I 
never managed to reproduce the behavior from the benchmark error log.  
(As I understand the Ur/Web benchmark code, it will automatically pick 
up this change as part of its deployment procedure.)



More information about the Ur mailing list