Class NO_DUPES

java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.raft.NO_DUPES
All Implemented Interfaces:
org.jgroups.Lifecycle

public class NO_DUPES extends org.jgroups.stack.Protocol
Intercepts JOIN and MERGE requests on the coordinator and rejects members whose addition would lead to members with duplicate raft-ids in the view.

Every member's address must be an ExtendedUUID and have a "raft-id" key whose value is the raft-id. When intercepting a JOIN request whose sender has a raft-id that's already in the view, we send back a JoinRsp with a rejection message.

Very similar to AUTH.
Since:
0.2
Author:
Bela Ban
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final short
     
    protected org.jgroups.View
     

    Fields inherited from class org.jgroups.stack.Protocol

    after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static boolean
    contains(org.jgroups.View v, org.jgroups.util.ExtendedUUID joiner)
     
    down(org.jgroups.Event evt)
     
    protected boolean
    handleGmsHeader(org.jgroups.protocols.pbcast.GMS.GmsHeader hdr, org.jgroups.Address sender)
     
    protected void
    sendJoinRejectedMessageTo(org.jgroups.Address joiner, String reject_message)
     
    up(org.jgroups.Message msg)
     
    void
    up(org.jgroups.util.MessageBatch batch)
     

    Methods inherited from class org.jgroups.stack.Protocol

    accept, addPolicy, addr, addr, afterCreationHook, destroy, down, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, init, isErgonomics, level, parse, policies, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, resetStats, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, stop, toString, up

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • gms_id

      protected static final short gms_id
    • view

      protected volatile org.jgroups.View view
  • Constructor Details

    • NO_DUPES

      public NO_DUPES()
  • Method Details

    • down

      public Object down(org.jgroups.Event evt)
      Overrides:
      down in class org.jgroups.stack.Protocol
    • up

      public Object up(org.jgroups.Message msg)
      Overrides:
      up in class org.jgroups.stack.Protocol
    • up

      public void up(org.jgroups.util.MessageBatch batch)
      Overrides:
      up in class org.jgroups.stack.Protocol
    • handleGmsHeader

      protected boolean handleGmsHeader(org.jgroups.protocols.pbcast.GMS.GmsHeader hdr, org.jgroups.Address sender)
      Returns:
      True if the message should be passed up, false if it should be discarded
    • contains

      protected static boolean contains(org.jgroups.View v, org.jgroups.util.ExtendedUUID joiner)
    • sendJoinRejectedMessageTo

      protected void sendJoinRejectedMessageTo(org.jgroups.Address joiner, String reject_message)