]
Vladimir Blagojevic resolved JGRP-341.
--------------------------------------
Resolution: Done
We added Flush reconciliation message phase. Event REBROADCAST indicates messages that
need to be retransnmitted in order to satisfy virtual synchrony. FLUSH has been updated as
well as NAKACK.
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
Priority: Critical
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: