On Sat, Sep 08, 2012 at 11:34:56AM -0700, Jeff Davis wrote: > If so, I think we need a documentation update. The serializable > isolation level docs don't quite make it clear that serializability only > applies to transactions that commit. It might not be obvious to a user > that there's a difference between commit and abort for a RO transaction. > I think that, in S2PL, serializability applies even to aborted > transactions (though I haven't spent much time thinking about it), so > users accustomed to other truly-serializable implementations might be
Yes, I agree that this is probably worth mentioning in the documentation. It might be worth noting that serializable mode will not cause read-only transactions to fail to commit (as might be possible in some optimistic concurrency control systems). However, it might require other transactions to be aborted to ensure serializability. If the user aborts the read-only transaction, that won't necessarily happen. Figure 2 of the aforementioned paper is actually a nice example of this. The read-only transaction T1 is allowed to commit, but as a result T2 has to be aborted. If T1 had ABORTed instead of COMMIT, T2 would be allowed to proceed. Dan -- Dan R. K. Ports UW CSE http://drkp.net/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers