Package org.jgroups.protocols.relay
Class RELAY
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.relay.RELAY
- All Implemented Interfaces:
Lifecycle
- Since:
- 5.2.17
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanprotected booleanstatic final shortprotected Stringprotected booleanprotected final LongAdderprotected final LongAdderNumber of messages (received from a remote Sitemaster and) delivered by the local SiteMaster to a local nodeprotected final LongAdderprotected final LongAdderNumber of messages forwarded to the local SiteMasterprotected booleanprotected intprotected short[]protected final LongAdderNumber of messages relayed by the local SiteMaster to a remote SiteMasterprotected final LongAdderTotal time spent relaying messages from the local SiteMaster to remote SiteMasters (in ns)protected Relayerprotected RouteStatusListenerprotected Stringprotected RelayConfig.SiteConfigListens for notifications about becoming site master (arg: true), or ceasing to be site master (arg: false)protected SiteMasterPickerprotected Stringprotected doubleprotected final Map<String, RelayConfig.SiteConfig> A map containing site names (e.g.protected SuppressLog<String> Log to suppress identical errors for messages to non-existing sites ('no route to site X')protected longprotected TimeSchedulerprotected final Topologyprotected ViewFields 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 -
Method Summary
Modifier and TypeMethodDescription<T extends RELAY>
TaddSite(String n, RelayConfig.SiteConfig cfg) voidaddToRelayedTime(long d) boolean<T extends RELAY>
TasyncRelayCreation(boolean flag) boolean<T extends RELAY>
TbroadcastRouteNotifications(boolean b) boolean<T extends RELAY>
TcanBecomeSiteMaster(boolean f) <T extends RELAY>
Tconfig()<T extends RELAY>
Tvoidprotected MessageCopies the message, but only the headers above the current protocol (RELAY) (or RpcDispatcher related headers)boolean<T extends RELAY>
TdelaySitesDown(boolean b) determineSiteMasters(View view, int max_num_site_masters) Iterates over the list of members and adds every member if the member's rank is below max_site_masters.An event is to be sent down the stack.longlonglongReturns the bridge channel to a given sitegetBridgeView(String cluster_name) intintlonglonglongintprotected PhysicalAddressReturns the route to a given sitegetSite()doublegetSites()longlonggetTimer()longprotected abstract voidabstract voidhandleView(View v) voidvoidinit()Called after a protocol has been created and before the protocol is started.protected booleanisLocal(SiteAddress addr) protected booleanisLocalSitemaster(SiteAddress addr) booleanmembers()protected voidnotifySiteMasterListener(boolean flag) voidCalled by the XML parser when subelements are found in the configuration of a protocol.protected voidParses the configuration by reading the config fileprotected AddresspickSiteMaster(Address sender) Returns a site master from site_mastersvoid<T extends RELAY>
T<T extends RELAY>
TsetMaxSiteMasters(int m) void<T extends RELAY>
T<T extends RELAY>
T<T extends RELAY>
T<T extends RELAY>
TsetSiteMastersRatio(double r) site()<T extends RELAY>
T<T extends RELAY>
Tprotected voidsitesChange(boolean down, Set<String> sites) voidstop()Called on aJChannel.disconnect(); stops work (e.g.topo()protected voidprotected voidtriggerSiteUnreachableEvent(SiteAddress remoteSite) An event was received from the protocol below.view()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, isErgonomics, level, policies, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, toString, up, up
-
Field Details
-
can_become_site_master_flag
public static final short can_become_site_master_flag- See Also:
-
site
-
config
-
can_become_site_master
protected boolean can_become_site_master -
max_site_masters
protected int max_site_masters -
site_masters_ratio
protected double site_masters_ratio -
site_master_picker_impl
-
async_relay_creation
protected boolean async_relay_creation -
delay_sites_down
protected boolean delay_sites_down -
suppress_time_no_route_errors
protected long suppress_time_no_route_errors -
is_site_master
protected volatile boolean is_site_master -
site_masters
-
broadcast_route_notifications
protected volatile boolean broadcast_route_notifications -
relayer
-
topo
-
forward_to_site_master
Number of messages forwarded to the local SiteMaster -
forward_sm_time
-
relayed
Number of messages relayed by the local SiteMaster to a remote SiteMaster -
relayed_time
Total time spent relaying messages from the local SiteMaster to remote SiteMasters (in ns) -
forward_to_local_mbr
Number of messages (received from a remote Sitemaster and) delivered by the local SiteMaster to a local node -
forward_to_local_mbr_time
-
prots_above
protected short[] prots_above -
timer
-
site_master_picker
-
view
-
members
-
route_status_listener
-
site_master_listener
Listens for notifications about becoming site master (arg: true), or ceasing to be site master (arg: false) -
sites
A map containing site names (e.g. "LON") as keys and SiteConfigs as values -
site_config
-
suppress_log_no_route
Log to suppress identical errors for messages to non-existing sites ('no route to site X')
-
-
Constructor Details
-
RELAY
public RELAY()
-
-
Method Details
-
getNumForwardedToSiteMaster
public long getNumForwardedToSiteMaster() -
getTimeForwardingToSM
public long getTimeForwardingToSM() -
getAvgMsgsForwardingToSM
public long getAvgMsgsForwardingToSM() -
getNumRelayed
public long getNumRelayed() -
getTimeRelaying
public long getTimeRelaying() -
getAvgMsgsRelaying
public long getAvgMsgsRelaying() -
getNumForwardedToLocalMbr
public long getNumForwardedToLocalMbr() -
getTimeForwardingToLocalMbr
public long getTimeForwardingToLocalMbr() -
getAvgMsgsForwardingToLocalMbr
public long getAvgMsgsForwardingToLocalMbr() -
getNumberOfNoRouteErrors
public int getNumberOfNoRouteErrors() -
clearNoRouteCache
-
getSite
-
site
-
setSite
-
site
-
topo
-
view
-
members
-
config
-
config
-
getConfig
-
setConfig
-
getTimer
-
incrementRelayed
public void incrementRelayed() -
addToRelayedTime
public void addToRelayedTime(long d) -
siteMasters
-
canBecomeSiteMaster
public boolean canBecomeSiteMaster() -
canBecomeSiteMaster
-
getMaxSiteMasters
public int getMaxSiteMasters() -
setMaxSiteMasters
-
getSiteMastersRatio
public double getSiteMastersRatio() -
setSiteMastersRatio
-
getSiteMasterPickerImpl
-
setSiteMasterPickerImpl
-
siteMasterPicker
-
asyncRelayCreation
public boolean asyncRelayCreation() -
asyncRelayCreation
-
delaySitesDown
public boolean delaySitesDown() -
delaySitesDown
-
broadcastRouteNotifications
public boolean broadcastRouteNotifications() -
broadcastRouteNotifications
-
getRouteStatusListener
-
setRouteStatusListener
-
setSiteMasterListener
-
addSite
-
siteNames
-
isSiteMaster
public boolean isSiteMaster() -
getSites
-
printSites
-
getNumRoutes
public int getNumRoutes() -
printRoutes
-
getRoute
Returns the route to a given site- Parameters:
site_name- The site name, e.g. "SFO"- Returns:
- The route to the given site, or null if no route was found or we're not the coordinator
-
getCurrentSites
- Returns:
- A
Listof sites name that are currently up ornullif this node is not a Site Master (i.e.isSiteMaster()returns false).
-
getBridge
Returns the bridge channel to a given site- Parameters:
site_name- The site name, e.g. "SFO"- Returns:
- The JChannel to the given site, or null if no route was found or we're not the coordinator
-
getBridgeView
-
resetStats
public void resetStats()- Overrides:
resetStatsin classProtocol
-
init
Description copied from class:ProtocolCalled after a protocol has been created and before the protocol is started. Attributes are already set. Other protocols are not yet connected and events cannot yet be sent. -
stop
public void stop()Description copied from class:ProtocolCalled on aJChannel.disconnect(); stops work (e.g. by closing multicast socket). Will be called from top to bottom. -
configure
- Throws:
Exception
-
parse
Description copied from class:ProtocolCalled by the XML parser when subelements are found in the configuration of a protocol. This allows a protocol to define protocol-specific information and to parse it -
down
Description copied from class:ProtocolAn event is to be sent down the stack. A protocol 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 protocol may need to add a header to it (or do nothing at all) before sending it down the stack usingdown_prot.down(). -
up
Description copied from class:ProtocolAn event was received from the protocol below. Usually the current protocol 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 usingdown_prot.down()or c) the event (or another event) is sent up the stack usingup_prot.up(). -
handleView
-
handleRelayMessage
-
isLocal
-
isLocalSitemaster
-
parseSiteConfiguration
Parses the configuration by reading the config file- Throws:
Exception
-
copy
Copies the message, but only the headers above the current protocol (RELAY) (or RpcDispatcher related headers) -
sitesChange
-
notifySiteMasterListener
protected void notifySiteMasterListener(boolean flag) -
getPhysicalAddress
-
determineSiteMasters
Iterates over the list of members and adds every member if the member's rank is below max_site_masters. Skips members which cannot become site masters (can_become_site_master == false). If no site master can be found, the first member of the view will be returned (even if it has can_become_site_master == false) -
pickSiteMaster
Returns a site master from site_masters -
triggerSiteUnreachableEvent
-
triggerMemberUnreachableEvent
-