I'm afraid we're mixing concerns, I didn't ask to allow
both
transactional and non-transactional operations on the same cache, I
understand there are good reasons to not support that.
What I need is control for batching, i.e. be able to send a set of
writes on different keys at one specific point in time, combined with
the capability to avoid repeatable reads in the same cache: definitely
there are many ways to emulate a similar behaviour, I could collect
all writes in a map and then send async operations and block on them
all, or open transactions for the span of single operations when I
don't need to batch.
Consider as well that I might be pushing a thousand of packages of
10MB each, I'm not of the idea that keeping these in a distributed
transaction log is healthy for performance since I don't need rollback
capabilities, being this already handled by Lucene.
Right, after a long discussion
and brain storming here is the proposed solution:
Short version: you'll have to set autoCommit=true and
use1PcForInducedTransaction=true. Actually this will be the default value for the two
attributes so you won't have to do any change to your existing code, nor
configuration. The existing performance will be preserved, i.e. out-of-tx calls are
handled within 1RPC.
Long version:
https://issues.jboss.org/browse/ISPN-1297