-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
8.0.0.Alpha2
-
None
NON_XA transactions that span multiple caches are registered as multiple synchronizations, and these synchronizations are often processed sequentially 1; therefore, we send synchronous PrepareCommand for each cache and then CommitCommand for each cache as well, delaying the commit by these round-trips.
Since the targets for different caches may differ, we still need to send the RPCs separately, but in parallel. Therefore, there should be one uber-synchronization for all caches that use NON_XA mode (and maybe something similar with XA). I believe that using single synchronization could save some allocations, too.
1 Not sure if full-fledged JTA implementations do that; JTA spec does not say anything about the order of synchronizations and whether these should be processed in parallel.