[jbosscache-dev] Re: JGroups and concurrent FLUSHes

Brian Stansberry brian.stansberry at redhat.com
Fri Feb 27 11:34:33 EST 2009


Sounds like an overly large change for a micro release on the highly 
stable 2.6 branch. JGroups' 2.7 branch seems more appropriate.  NBST in 
JBC is not stable tech, so I don't like the idea of destabilizing a 
highly stable branch to cater to it.

 From a technical POV, what's discussed sounds fine. ;)

Bela Ban wrote:
> Copied Brian, who will probably not like this. I guess... :-)
> 
> Actually, we should move this discussion over to jbosscache-dev... 
> (copied). Please reply to jbosscache-dev from now on
> 
> Vladimir Blagojevic wrote:
>> As Bela and I talked this option simplifies FLUSH quite a bit but puts 
>> the burden and the *freedom* of retry management on application code. 
>> My only concern is compatibility if we are going to stick this into 
>> 2.6.9. This changes flush semantics quite a bit and perhaps we can 
>> talk about this as well.
>>
>> On 2/27/09 9:52 AM, Bela Ban wrote:
>>> Manik and I discussed this over the phone. Some items we came up with:
>>>
>>>    * Concurrent partial flushes won't happen because if a state
>>>      requester or provider isin the process of transferring state,
>>>      it'll reject the new state transfer
>>>    * Concurrent total and partial flushes *are* possible: a view change
>>>      and a partial state, executed concurrently
>>>          o We cannot disable flushing for view changes, because the
>>>            user probably wanted this with placing FLUSH into the stack.
>>>            OTOH, because JBC NBST requires FLUSH (because of the
>>>            partial flushing), we need to be able to disable flushing
>>>            for view changes. Hence the previous email.
>>>          o If a view change flush is in progress, currently a partial
>>>            flush would fail. Manik will change code to make the partial
>>>            flushing back off and retry, up to a number of times, if
>>>            this happens
>>>          o If a view change happens, but a partial flush is already in
>>>            progress, the view change will fail ! We'll change code such
>>>            that the coordinator backs off and retries a number of
>>>            times, before giving up.
>>>          o Because total flushes and partial flushes are usually very
>>>            short, the backing off and retrying mechanism should work
>>>            most of the time
>>>          o Would establishing total order between total and partial
>>>            flushes help ? Vladimir and Bela to investigate
>>>          o Vladimir: make sure that if A flushes A,B and C
>>>            successfully, but fails for D and E, A only aborts the flush
>>>            on A,B and C, but *not* on D or E ! A member cannot abort
>>>            flushes started by someone else !
>>>
>>>
>>
> 


-- 
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry at redhat.com



More information about the jbosscache-dev mailing list