[infinispan-dev] rethinking ISPN transactions

Radim Vansa rvansa at redhat.com
Tue Nov 19 02:46:46 EST 2013


On 11/19/2013 03:06 AM, Mircea Markus wrote:
> On Nov 12, 2013, at 2:51 PM, Paul Ferraro <paul.ferraro at redhat.com> wrote:
>
>> 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?
> The batching API ATM only guarantees that if the commit(end of batch) succeeds everything is applied. If the commit doesn't succeed you get inconsistencies/no guarantees. That's pretty much the kind of guarantees I'd like the new batching to offer.
Are you sure that if commit doesn't fail, the batch is applied? Does 
batching use synchronisation or XA resource enlistment (or, are both 
options possible? In TransactionFactory I see that batching results in 
*_NOXA enum)? Because if it is synchronization and CommitCommand fails 
due to replication timeout, heuristic rollback is applied but the 
application does not receive any kind of exception.

Pardon me if I am mixing things, I am not well educated in all the JTA 
stuff but recently I got pretty surprised that with default settings my 
transaction was rolled back but the app code did not get any failure.

Radim

-- 
Radim Vansa <rvansa at redhat.com>
JBoss DataGrid QA



More information about the infinispan-dev mailing list