On 3/7/12 1:34 PM, Mircea Markus wrote:
>> +1 - I've started doing that and it's an ugly business.
>>
>> Here's another approach:
>> - all jgroups configs shipped with ISPN come with the SEQUENCER added
>> - by default all messages have NO_TOTAL_ORDER flag attached
>> - RpcManager.invoke mthods would also support a totalOrder flag (similar to OBB
flag currently supported)
>>
>> With this approach:
>> - we would support heterogeneous caches on the same cache manager: TO, 2PC *and*
non-tx caches
>> - we would allow existing users to switch to total order replication without the
need to change the jgroups configuration
>> - the performance penalty of having the SEQUENCER for caches that don't need
it, e.g. not tx caches, is minimal by the look of the code
>>
>> How does it sound?
>
> Intuitively, not nice ! Can't we have different configurations for these
> use cases ?
We can, but the users that want to use both TO transactional caches and non transactional
caches on the same transport - a pretty common scenario IMO - would have to add the
seqeuncer to the jgroups configuration by hand.
Why not have 2 separate channels, but both residing on the same shared
transport. I think Infinispan is injected a shared transport anyway, but
AS, so this could be reused...
Not sure on the details though, you'd have to talk to Paul for clarification
As the seqeuncer doesn't harm performance, why not have it there
by
default?
Because this suggests total order when looking at the config. A user
looking at the config, doesn't know that we're secretly bypassing SEQUENCER.
--
Bela Ban
Lead JGroups (
http://www.jgroups.org)
JBoss / Red Hat