JGroups Protocol MERGE3: Difference between revisions
No edit summary |
No edit summary |
||
Line 16: | Line 16: | ||
The advantage compared to [[JGroups Protocol MERGE2|MERGE2]] is that there are no merge collisions caused by multiple merges going on. Also, the INFO traffic is spread out over max_interval, and every member sends its physical address with INFO, so we don't need to fetch the physical address first. | The advantage compared to [[JGroups Protocol MERGE2|MERGE2]] is that there are no merge collisions caused by multiple merges going on. Also, the INFO traffic is spread out over max_interval, and every member sends its physical address with INFO, so we don't need to fetch the physical address first. | ||
MERGE3 works over both UDP and TCP transports. | |||
=Benefits over MERGE2= | =Benefits over MERGE2= |
Revision as of 04:21, 5 March 2016
External
- JGroups Documentation http://www.jgroups.org/manual-3.x/html/protlist.html#MERGE3
- http://www.jgroups.org/javadoc/org/jgroups/protocols/MERGE3.html
- https://issues.jboss.org/browse/JGRP-1387
Internal
Overview
Protocol to discover subgroups existing due to a network partition that healed.
Every member periodically broadcasts its address (UUID), logical name, physical address and ViewID information. Other members collect this information and see if the ViewIDs are different (indication of different subpartitions). If they are, the member with the lowest address (first in the sorted list of collected addresses) sends a MERGE event up the stack, which will be handled by GMS. The others do nothing.
The advantage compared to MERGE2 is that there are no merge collisions caused by multiple merges going on. Also, the INFO traffic is spread out over max_interval, and every member sends its physical address with INFO, so we don't need to fetch the physical address first.
MERGE3 works over both UDP and TCP transports.
Benefits over MERGE2
- Good for large clusters, geared toward UDP based stacks
- Only 1 merge in the cluster at any time
Configuration
min_interval
In milliseconds. Default: 1000.
max_interval
In milliseconds. Default: 10000.