Hi,
Comments inline.
Cheers,
Pedro
Paolo Romano wrote:
On 3/23/12 10:45 AM, Bela Ban wrote:
>> The biggest problem I remember total order having is TM transactions
>> that have other participants (as opposed to cache-only transactions).
>> I haven't followed the TO discussion on the mailing list very closely,
>> does that work now?
>
> No, I don't think that's addressed by TOM, good point in favor of having
> 2 (or more) approaches to partial replication and state transfer !
>
>
Actually, we already have code for dealing with scenarios in which ISPN
is involved in a distributed transaction with other participants.( Pedro
can point it out, it should be already on github.)
The TOB code can be found here [1]. In TransactionCoordinator, it checks
if it uses 1 phase or 2 phases. Of course, like Paolo said, it only works
for TOB. In TOM, we must have the 2 phases (with write skew check
enabled).
In this case, the solution implies necessarily the usage of 2PC, but we
can disseminate the prepare messages within ISPN using TOM.
Pro:
- deadlock freedom at the ISPN level, which can contribute to make of
ISPN a well-behaved (i.e. responsive) participant in a distributed
transaction even in high contention scenarios.
Con:
- in this case we cannot determine right away the outcome of a
transaction once it is TOM-delivered, as we need to take into account
also the votes of external participants. Hence the need for an extra
phase.
[1]
https://github.com/pruivo/infinispan/tree/t_to_pedro