On 06/24/2015 07:46 AM, George Neuner wrote:
Hi Ryan,

On 6/23/2015 12:20 PM, Ryan Culpepper wrote:
Yes, that should be fine. One note about your sample code: the
isolation mode of inner transactions must be #f (the default); you
can't change isolation levels once you've started an outer
transaction. Also keep in mind that nested transactions are not
supported for ODBC connections.

Yes, I saw in reading some more that both  call-with-transaction and
start-transaction  create a savepoint if an outer transaction is open.
Savepoints are very nice but they don't handle every situation -
sometimes you really need a full subtransaction.

Using savepoints means, e.g., that if I need serialize isolation
anywhere, I have to use serilize isolation everywhere.  For many
situations, that's hitting a fly with a sledgehammer and severely
impacts performance.  There are lots of cases where you need to
serialize a particular operation inside a much larger transaction that
mostly can run with lower isolation.

[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.

Ryan

--
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.

Reply via email to