"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
>>>> Emmanuel Cecchet <manu@frogthinker.org> 12/23/08 8:59 AM >>>
>> Have you ever used serializable transactions with Sybase?
>
> Every day for over 15 years.
Afaict doing a few google searches Sybase doesn't do predicate locking either.
It would very much surprise me if they did since they've always had the most
primitive locking infrastructure of the three major databases. Locking records
or pages isn't going to provide true standards-compliant serializable
transactions in the way you're describing.
Predicate locking means being able to lock records which don't actually exist
yet. Ie, locking all records "WHERE COLUMN=0" even if there are no such
records. This has to block any other transaction from inserting such a record
or updating another record to set COLUMN to 0.
>> Oracle also provides SI like Postgres and I don't think they are doing that
>> bad.
>
> I don't quire understand. Could you clarify?
The point is Oracle doesn't provide this kind of true serializable isolation
and people still find it useful. In fact Sybase and DB2 also don't provide
true serializable transactions -- nobody does. It's a fantasy.
> There really are good reasons. I'm not up to going through that now,
> but if there is genuine interest in the topic perhaps I can follow up
> later.
I suppose I'm curious whether you're mistaken and your app isn't safe on
Sybase because it's depending on truly serializable transactions and Sybase
isn't doing that, or if you have examples of transactions which Sybase
provides proper serialized semantics for but Postgres doesn't.
>> But I am probably missing the point which was to fix the doc?
But missing the point and having pointless arguments is so much more fun than
documentation writing :)
-- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's RemoteDBA services!