JGroups Protocol MERGE2: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:
* [[JGroups#Protocols|JGroups]]
* [[JGroups#Protocols|JGroups]]


=Overview=


 
If a group gets split for some reason (network partition), this protocol merges the subgroups back into one group. It run only by the coordinator. The <tt>FindSubgroupsTask</tt> of the MERGE2 protocol periodically sends a FIND_INITIAL_MBRS down the stack, which is handled by the implementation of the Discovery protocol ([[JGroups Protocol PING|PING]], [[JGroups Protocol MPING|MPING]], etc) usually by sending a GET_MBRS_REQ message. More about this process here [[PING#PeriodicGET_MBRS_REQRequests][.
!!!Internal
 
|[JGroups]
 
!!!Overview
 
If a group gets split for some reason (network partition), this protocol merges the subgroups back into one group.  
 
It is only run by the coordinator. The FindSubgroupsTask of the MERGE2 protocol periodically sends a FIND_INITIAL_MBRS down the stack, which is handled by the implementation of the Discovery protocol ([PING], [MPING], etc) usually by sending a GET_MBRS_REQ message. More about this process here [PING#PeriodicGET_MBRS_REQRequests].


The FIND_INITIAL_MBRS events (and consequently GET_MBRS_REQ messages) are sent at random intervals between 'min_interval' and 'max_interval' milliseconds.
The FIND_INITIAL_MBRS events (and consequently GET_MBRS_REQ messages) are sent at random intervals between 'min_interval' and 'max_interval' milliseconds.
Line 24: Line 16:
If another coordinator for the same group receives this message, it will initiate a merge process. The merge process does not merge state. The app has to handle the callback to merge state.
If another coordinator for the same group receives this message, it will initiate a merge process. The merge process does not merge state. The app has to handle the callback to merge state.


!!!Configuration Sample
=Configuration=
 
{{{
    <MERGE2 max_interval="100000" min_interval="20000"/>
 
}}}
 


!min_interval
<pre>
  <MERGE2 max_interval="100000" min_interval="20000"/>
</pre>


!max_interval
==min_interval==


==max_interval==


If 'max_interval' is smaller or equal with 'min_interval', we get a configuration error:
If 'max_interval' is smaller or equal with 'min_interval', we get a configuration error:


{{{
<pre>
21:14:16,436 ERROR [MERGE2] @main max_interval has to be greater than min_interval
21:14:16,436 ERROR [MERGE2] @main max_interval has to be greater than min_interval
}}}
</pre>


and the stack won't start.
and the stack won't start.
__Referenced by:__\\
[{INSERT com.ecyrd.jspwiki.plugin.ReferringPagesPlugin WHERE max=20, maxwidth=50}]

Revision as of 06:31, 2 March 2016

External

Internal

Overview

If a group gets split for some reason (network partition), this protocol merges the subgroups back into one group. It run only by the coordinator. The FindSubgroupsTask of the MERGE2 protocol periodically sends a FIND_INITIAL_MBRS down the stack, which is handled by the implementation of the Discovery protocol (PING, MPING, etc) usually by sending a GET_MBRS_REQ message. More about this process here [[PING#PeriodicGET_MBRS_REQRequests][.

The FIND_INITIAL_MBRS events (and consequently GET_MBRS_REQ messages) are sent at random intervals between 'min_interval' and 'max_interval' milliseconds.

If another coordinator for the same group receives this message, it will initiate a merge process. The merge process does not merge state. The app has to handle the callback to merge state.

Configuration

  <MERGE2 max_interval="100000" min_interval="20000"/>

min_interval

max_interval

If 'max_interval' is smaller or equal with 'min_interval', we get a configuration error:

21:14:16,436 ERROR [MERGE2] @main max_interval has to be greater than min_interval

and the stack won't start.