[
https://jira.jboss.org/jira/browse/JGRP-1009?page=com.atlassian.jira.plug...
]
Bela Ban commented on JGRP-1009:
--------------------------------
This was fixed by adding inconsistent_view_threshold to MERGE2. When we see an
inconsistent view but only *one* coordinator, we increment a counter. If that counter
exceeds inconsistent_view_threshold, we'll send up a MERGE event, otherwise we do
nothing. When a regular merge occurs (between multiple coordinators), or when we receive a
consistent view, then we set inconsistent_view_threshold to 0 as well.
Prevent merging during JOIN/LEAVE processing
--------------------------------------------
Key: JGRP-1009
URL:
https://jira.jboss.org/jira/browse/JGRP-1009
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.8
- Say we have V1={A,B,C} and D joins
- A multicasts the new view V2={A,B,C,D} to {A,B,C} and sends a it via unicast to D
- At time T1, A and C have V2, but B might still have V1
- At timeT3 B will also have V2
- HOWEVER, *before* T3 (at T2), A's MERGE functionality gets the current views and
discovers the discrepancy
- A will now initiate a merge. This is superfluous because B would have received V2 at T3
(maybe a few ms later) !
This is not incorrect, but we still want to prevent spurious merges.
SOLUTION:
- Turn off merging during view change processing
- This can be done via discarding of MERGE events at GMS during view processing, or by
disabling merging directly in MERGE2, MERGE3, MERGEFAST. The first option looks more
promising, as it requires only 1 hange in GMS
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira