On Fri, 2013-11-08 at 15:28 +0000, Mircea Markus wrote:
Hey guys,
Several things were discussed lately([1],[2],[3],[4]) around our transaction support.
Here's some some thoughts I have around re-modeling transactions for 7.0:
1. Async options for commit/rollback
- they don't really make sense as a user you don't get any guarantee on the
status of the transaction
- they complicate the code significantly
- I think they should be removed
+1
Wildfly/EAP doesn't use async commits, but does use async rollbacks -
though, I'm not really concerned about the performance of cache
rollbacks, so sync rollbacks are fine.
2. READ_COMMITTED
- it has the same performance as REPEATABLE_READ, but offers less guarantees.
- unlike REPEATABLE_READ, it also behaves inconsistently when the data is owned by
transaction originator
- I think it should be removed
+1
We already require REPEATABLE_READ in Wildfly/EAP.
3. Optimistic tx without Write Skew Check (WSC)
- well, without WSC the transactions are not optimistic by definition
- they are something else: an batch update of multiple key/values. If the batch is
successful you know the update was atomic. If it failed you don't get any guarantee
- suggestion: optimistic tx should *always* have WSC enabled (no option to configure it)
- build our batching functionality on top of what currently is optimistic tx without WSC
and document it as such
OK, but can you elaborate on the last bullet?
So, the batching API will no longer contain transactional guarantees?
4. Remove 1PC option
- I'm not totally sure about it, but does it really make sense to have 1PC as an
option? they don't offer any consistency guarantees so async API + non tx do about the
same thing
[1]
http://markmail.org/thread/a7fjko4dyejxqgdy
[2]
https://github.com/infinispan/infinispan/pull/2177
[3]
http://infinispan.markmail.org/thread/nl2bs7rjvayjcybv
[4]
http://infinispan.markmail.org/thread/vbg6g4otu7djazbc
Cheers,