[ Email says sending to the group failed. Apologies if this appears
multiple times. ]
Hi Ryan,
On 6/24/2015 10:06 AM, Ryan Culpepper wrote:
On 06/24/2015 07:46 AM, George Neuner wrote:
[He asks naively not having looked at the code:] Would it be hard to
keep savepoint creation if #:isolation is #f but allow other settings
to create a real subtransaction? At least if #:isolation is
'serialized? I can't think of any realistic case where a subtransaction
would require higher isolation but not need to be serialized.
I haven't been able to find much information about "real
subtransactions" as opposed to savepoints. What DB systems support
them? How are they created and managed? If it's through SQL commands,
then it might not be too difficult.
Hmm ... hadn't thought about which DBMS support them.
You're right that that information is hard to find. I know SQLServer
and Sybase support them. (Quite) A bit of searching shows that not many
others do. Nesting is required for 2-phase commit [so I would have
thought all production quality DBMS would do it] but it seems that most
DBMS now only *support* 2-phase commit by external controller and don't
actually *do* 2-phase natively.
Probably best to forget it. I can do what I need with locks - it's
just that using transactions would have made the code simpler to understand.
FWIW: "subtransaction" is just jargon, there's no real notion separate
from a normal transaction. It's simply that DBMS which allow nesting
can enforce strict stack scoping so that inner transactions must
complete before outer. Commits on inners are provisionary - visible
within the outer but not to concurrently executing transactions until
the outer commits. Different from savepoints in that inner
transactions can specify different isolation.
Thanks,
George
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.