Re: Serializability of Transactions and Automatic (Number) Generators

From: Jan Hidders <jan.hidders_at_REMOVETHIS.pandora.be>
Date: Thu, 25 Nov 2004 21:56:07 GMT
Message-ID: <Xxspd.655$nN1.57401_at_phobos.telenet-ops.be>


Jonathan Leffler wrote:
>
> Modern DBMS usually have one or more ways of automatically generating
> values during a transaction - Oracle (and most other DBMS) have SEQUENCE
> types; Informix has the SERIAL type; other DBMS have other similar
> constructs.
>
> In general, the values automatically generated during a transaction are
> not generated again, even if the original transaction is rolled back.
> [...]
>
> Does this mean that such transactions are inherently non-serializable,
> or does it mean that the specific values generated by a transaction are
> not material for the discussion of equivalence of executions?

I think you already answered your question. Allow me to reformulate your answer slightly.

If you think of the generated values as abstract identifers (and that is actually what they are supposed to be) then the semantics of your transaction become non-deterministic functions (aka binary relations), although in a very limited sense because the only thing that is not determined is the exact value of the generated values. (I think the term "determinate" is sometimes used for that.) So in the definition of "serializable" you should then read the "equivalent" as "describes the same non-deterministic function" and from there on concurrency theory works basically the same as before.

One could almost say that it is simply a question of looking at it at the right abstraction level.

  • Jan Hidders
Received on Thu Nov 25 2004 - 22:56:07 CET

Original text of this message