[
http://jira.jboss.com/jira/browse/JGRP-421?page=comments#action_12356543 ]
Bela Ban commented on JGRP-421:
-------------------------------
- The original sender adds a new seqno, and the forwards the message to the coord
- The coord multicasts (BCAST) the message to the group, assigning its own seqno
- The coordinator's BCAST message will be handled (and retransmitted if necessary) by
NAKACK
- The original sender's seqno is *not* used in NAKACK !
- When a BCAST message is received (always from coord), we pass it up. This is done in
FIFO order of those BCASTs, so each BCAST is delivered sequentially. This is ensured in
NAKACK, where messages from the same sender (here: coord) are delivered in order of their
seqnos.
- The original sender's seqnos are only used to double-check (in SEQUENCER) whether a
message has already been delivered; we don't need to handle retransmission because
that was already done by NAKACK. Duplicate messages can happen on failover from a coord-1
to coord-2 (e.g. when coord-1 crashed).
- Because all BCAST messages are delivered in FIFO order by sender, and there is only one
sender, this ensures that we have global (total) order
- The protocol is correct
Investigate correctness of SEQUENCER
------------------------------------
Key: JGRP-421
URL:
http://jira.jboss.com/jira/browse/JGRP-421
Project: JGroups
Issue Type: Task
Affects Versions: 2.4
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.5
In the current implementation, each member assigns the seqno. IMO, this should only be
done by the coord ! E.g.:
- Member forwards msg to coord
- Coord assigns seqno and multicasts message to all members
- Each member delivers message in order of seqnos, thereby establishing total ordering
--
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