Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jgroups.protocols
Class MERGE3

    java.lang.Object
      org.jgroups.stack.Protocol
          org.jgroups.protocols.MERGE3

    public class MERGE3

extends Protocol

Protocol to discover subgroups; e.g., existing due to a network partition (that healed). Example: group {p,q,r,s,t,u,v,w} is split into 3 subgroups {p,q}, {r,s,t,u} and {v,w}. This protocol will eventually send a MERGE event with the coordinators of each subgroup up the stack: {p,r,v}. Note that - depending on the time of subgroup discovery - there could also be 2 MERGE events, which first join 2 of the subgroups, and then the resulting group to the last subgroup. The real work of merging the subgroups into one larger group is done somewhere above this protocol (typically in the GMS protocol).

This protocol works as follows:

- If coordinator: periodically broadcast its view. If another coordinator receives such a message, and its own view differs from the received view, it immediately initiates a merge by sending up a MERGE event, containing the received view and its own view

  Provides: sends MERGE event with list of different views up the stack

  Author:
    Bela Ban, Oct 16 2001

  Nested Class Summary
  `static class` | `MERGE3.CoordAnnouncement`

  Field Summary

  Fields inherited from class org.jgroups.stack.Protocol
  `down_prot, ergonomics, id, log, name, stack, stats, up_prot`

  Constructor Summary
  `MERGE3()`

  Method Summary
  `java.lang.Object` | `down(Event evt)` An event is to be sent down the stack.
  `void` | `init()` Called after instance has been created (null constructor) and before protocol is started.
  `java.lang.Object` | `up(Event evt)` An event was received from the layer below.

  Methods inherited from class org.jgroups.stack.Protocol
  `destroy, downThreadEnabled, dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getId, getLevel, getName, getProperties, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getValue, isErgonomics, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStats, setDownProtocol, setErgonomics, setId, setLevel, setProperties, setPropertiesInternal, setProperty, setProtocolStack, setSocketFactory, setUpProtocol, setValue, setValues, start, statsEnabled, stop, upThreadEnabled`

  Methods inherited from class java.lang.Object
  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  Constructor Detail

  ### MERGE3

      public MERGE3()

  Method Detail

  ### init

      public void init()
                throws java.lang.Exception

    Description copied from class: `Protocol`
    Called after instance has been created (null constructor) and before protocol is started. Properties are already set. Other protocols are not yet connected and events cannot yet be sent.

    Overrides:
      `init` in class `Protocol`
    Throws:
      `java.lang.Exception` - Thrown if protocol cannot be initialized successfully. This will cause the ProtocolStack to fail, so the channel constructor will throw an exception

  ### up

      public java.lang.Object up(Event evt)

    Description copied from class: `Protocol`
    An event was received from the layer below. Usually the current layer will want to examine the event type and - depending on its type - perform some computation (e.g. removing headers from a MSG event type, or updating the internal membership list when receiving a VIEW_CHANGE event). Finally the event is either a) discarded, or b) an event is sent down the stack using `down_prot.down()` or c) the event (or another event) is sent up the stack using `up_prot.up()`.

    Overrides:
      `up` in class `Protocol`

  ### down

      public java.lang.Object down(Event evt)

    Description copied from class: `Protocol`
    An event is to be sent down the stack. The layer may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the layer may need to add a header to it (or do nothing at all) before sending it down the stack using `down_prot.down()`. In case of a GET_ADDRESS event (which tries to retrieve the stack's address from one of the bottom layers), the layer may need to send a new response event back up the stack using `up_prot.up()`.

    Overrides:
      `down` in class `Protocol`

  Overview | Package | Class | Use | Tree | Deprecated | Index | Help
  PREV CLASS NEXT CLASS | FRAMES NO FRAMES
  SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

  Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.