Extend FLUSH to fully support virtual synchrony
-----------------------------------------------
Key: JGRP-341
URL:
http://jira.jboss.com/jira/browse/JGRP-341
Project: JGroups
Issue Type: Feature Request
Affects Versions: 2.4
Reporter: Bela Ban
Assigned To: Vladimir Blagojevic
Fix For: 2.5
Currently, FLUSH makes sure that all members 'flush' their pending messages and
then stop sending new ones until the join or state transfer is over. However, FLUSH does
*not* (unlike the old version) make sure that - on JOIN - all members have seen the same
set of messages before installing a new view. Example: P sends M, but immediately after
sending M crashes. If another member Q received M, but R didn't see M, then - with the
current FLUSH - R will *not* see M.
We need to run a messages exchange phase, as part of FLUSH, which makes sure that all
member have seen the same set of messages in the same view, before installing a new view.
Whether to run this or not could be made configurable. If enabled, we could piggyback the
message exchange on START_FLUSH/FLUSH_OK etc.
A simple (but costly) solution would be to simply multicast all messages received from
other members before multicasting the FLUSH_OK. A better solution would be to exchange
digests with highest sequence numbers seen for all members, and then only multicast the
missing messages. This *might* require an additional phase though.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira