Re: Compatibility GUC for serializable - Mailing list pgsql-hackers

From Josh Berkus
Subject Re: Compatibility GUC for serializable
Date
Msg-id 4D2B4D47.9040305@agliodbs.com
Whole thread Raw
In response to Re: Compatibility GUC for serializable  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Compatibility GUC for serializable  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Re: Compatibility GUC for serializable  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On 1/9/11 5:27 PM, Robert Haas wrote:
> I agree.  I think we should assume that existing code which asks for
> serializable behavior wants serializable behavior, not broken
> serializable behavior.  There certainly could be cases where the
> opposite is true (the code wants, specifically, our traditional
> definition of serializability rather than actual serializability) but
> I bet there's not a whole lot of them, and changing such code to ask
> for REPEATABLE READ probably isn't extremely difficult.

I'm going to disagree here. For a large, sprawling, legacy application
changing SERIALIZABLE to REPEATABLE READ in every place in the code
which might call it can be prohibitively difficult.  Further, many such
applications would be written with workarounds for broken serializable
behavior, workarounds which would behave unpredictably after an upgrade.

As such, I'd tend to say that like other major behavior changes, we
ought to have a LEGACY_SERIALIZABLE GUC for a couple of versions,
defaulting to "FALSE".  Otherwise SSI becomes an anti-feature for some
users and prevents them from upgrading.

On the other hand, I'm not sure how many users ever use SERIALIZABLE
mode.  That would be the main counter-argument.

--                                  -- Josh Berkus                                    PostgreSQL Experts Inc.
                        http://www.pgexperts.com
 


pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: GIN indexscans versus equality selectivity estimation
Next
From: "Kevin Grittner"
Date:
Subject: Re: Compatibility GUC for serializable