Conversation

Great work as always, Kyle!
Quote Tweet
A new Jepsen report! It turns out that PostgreSQL's "serializable" isolation was not, in fact, serializable: it exhibited G2-item. A patch is coming in the next minor release. :) jepsen.io/analyses/postg
Show this thread
2
82
Replying to
Thank you for doing this work in Hermitage well before I got there! I'm still trying to figure out whether Jepsen should hold companies specifically to the formalized isolation levels, or allow broad interpretations; I would have thought everyone followed Berenson+ but ...???
1
8
Replying to
I'm not sure either. If it was a legal contract, I'm guessing lawyers would apply a test of whether a user of the system would “reasonably expect” a certain behaviour, given the docs and marketing. But since ~nobody understands isolation levels, not sure what users should expect!
2
5
Replying to and
Agree we need to improve the docs, perhaps even consider renaming/aliasing the levels. Still not sure when Berenson RR would be desirable over SI in current real-world systems. Seem those would normally want full serializable? There are good performance reasons for "pure" SI...
2
1
Replying to and
Adya RR is nice because an application which only accesses records by primary key, rather than predicates, can guarantee serializable execution. I think it's easier to reason about than SI, which prevents *non-adjacent* rw dependency edges in cycles, but not adjacent ones.
2
2