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
Thanks! that sounds very good.
as always, we had very constructive discussions on irc.
(translation: was a though fight :D )