Package org.jgroups.protocols.relay
Class RELAY
- java.lang.Object
- 
- org.jgroups.stack.Protocol
- 
- org.jgroups.protocols.relay.RELAY
 
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected booleanasync_relay_creationprotected booleanbroadcast_route_notificationsprotected booleancan_become_site_masterstatic shortcan_become_site_master_flagprotected java.lang.Stringconfigprotected booleandelay_sites_downprotected java.util.concurrent.atomic.LongAdderforward_sm_timeprotected java.util.concurrent.atomic.LongAdderforward_to_local_mbrNumber of messages (received from a remote Sitemaster and) delivered by the local SiteMaster to a local nodeprotected java.util.concurrent.atomic.LongAdderforward_to_local_mbr_timeprotected java.util.concurrent.atomic.LongAdderforward_to_site_masterNumber of messages forwarded to the local SiteMasterprotected booleanis_site_masterprotected intmax_site_mastersprotected java.util.List<Address>membersprotected short[]prots_aboveprotected java.util.concurrent.atomic.LongAdderrelayedNumber of messages relayed by the local SiteMaster to a remote SiteMasterprotected java.util.concurrent.atomic.LongAdderrelayed_timeTotal time spent relaying messages from the local SiteMaster to remote SiteMasters (in ns)protected Relayerrelayerprotected RouteStatusListenerroute_status_listenerprotected java.lang.Stringsiteprotected RelayConfig.SiteConfigsite_configprotected java.util.function.Consumer<java.lang.Boolean>site_master_listenerListens for notifications about becoming site master (arg: true), or ceasing to be site master (arg: false)protected SiteMasterPickersite_master_pickerprotected java.lang.Stringsite_master_picker_implprotected java.util.List<Address>site_mastersprotected doublesite_masters_ratioprotected java.util.Map<java.lang.String,RelayConfig.SiteConfig>sitesA map containing site names (e.g.protected SuppressLog<java.lang.String>suppress_log_no_routeLog to suppress identical errors for messages to non-existing sites ('no route to site X')protected longsuppress_time_no_route_errorsprotected TimeSchedulertimerprotected Topologytopoprotected Viewview- 
Fields inherited from class org.jgroups.stack.Protocolafter_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot
 
- 
 - 
Constructor SummaryConstructors Constructor Description RELAY()
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <T extends RELAY>
 TaddSite(java.lang.String n, RelayConfig.SiteConfig cfg)voidaddToRelayedTime(long d)booleanasyncRelayCreation()<T extends RELAY>
 TasyncRelayCreation(boolean flag)booleanbroadcastRouteNotifications()<T extends RELAY>
 TbroadcastRouteNotifications(boolean b)booleancanBecomeSiteMaster()<T extends RELAY>
 TcanBecomeSiteMaster(boolean f)<T extends RELAY>
 TclearNoRouteCache()java.lang.Stringconfig()<T extends RELAY>
 Tconfig(java.lang.String cfg)voidconfigure()protected Messagecopy(Message msg)Copies the message, but only the headers above the current protocol (RELAY) (or RpcDispatcher related headers)booleandelaySitesDown()<T extends RELAY>
 TdelaySitesDown(boolean b)protected static java.util.List<Address>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.java.lang.Objectdown(Event evt)An event is to be sent down the stack.longgetAvgMsgsForwardingToLocalMbr()longgetAvgMsgsForwardingToSM()longgetAvgMsgsRelaying()JChannelgetBridge(java.lang.String site_name)Returns the bridge channel to a given siteViewgetBridgeView(java.lang.String cluster_name)java.lang.StringgetConfig()java.util.List<java.lang.String>getCurrentSites()intgetMaxSiteMasters()intgetNumberOfNoRouteErrors()longgetNumForwardedToLocalMbr()longgetNumForwardedToSiteMaster()longgetNumRelayed()intgetNumRoutes()protected PhysicalAddressgetPhysicalAddress(Address mbr)RoutegetRoute(java.lang.String site_name)Returns the route to a given siteRouteStatusListenergetRouteStatusListener()java.lang.StringgetSite()java.lang.StringgetSiteMasterPickerImpl()doublegetSiteMastersRatio()java.util.List<java.lang.String>getSites()longgetTimeForwardingToLocalMbr()longgetTimeForwardingToSM()TimeSchedulergetTimer()longgetTimeRelaying()protected abstract voidhandleRelayMessage(Message msg)abstract voidhandleView(View v)voidincrementRelayed()voidinit()Called after a protocol has been created and before the protocol is started.protected booleanisLocal(SiteAddress addr)protected booleanisLocalSitemaster(SiteAddress addr)booleanisSiteMaster()java.util.List<Address>members()protected voidnotifySiteMasterListener(boolean flag)voidparse(XmlNode node)Called by the XML parser when subelements are found in the configuration of a protocol.protected voidparseSiteConfiguration(java.util.Map<java.lang.String,RelayConfig.SiteConfig> map)Parses the configuration by reading the config fileprotected AddresspickSiteMaster(Address sender)Returns a site master from site_mastersjava.lang.StringprintRoutes()java.lang.StringprintSites()voidresetStats()<T extends RELAY>
 TsetConfig(java.lang.String c)<T extends RELAY>
 TsetMaxSiteMasters(int m)voidsetRouteStatusListener(RouteStatusListener l)<T extends RELAY>
 TsetSite(java.lang.String s)<T extends RELAY>
 TsetSiteMasterListener(java.util.function.Consumer<java.lang.Boolean> l)<T extends RELAY>
 TsetSiteMasterPickerImpl(java.lang.String s)<T extends RELAY>
 TsetSiteMastersRatio(double r)java.lang.Stringsite()<T extends RELAY>
 Tsite(java.lang.String s)<T extends RELAY>
 TsiteMasterPicker(SiteMasterPicker s)java.util.List<Address>siteMasters()java.util.List<java.lang.String>siteNames()protected voidsitesChange(boolean down, java.util.Set<java.lang.String> sites)voidstop()Called on aJChannel.disconnect(); stops work (e.g.Topologytopo()protected voidtriggerMemberUnreachableEvent(Address mbr)protected voidtriggerSiteUnreachableEvent(SiteAddress remoteSite)java.lang.Objectup(Event evt)An event was received from the protocol below.Viewview()- 
Methods inherited from class org.jgroups.stack.Protocolaccept, 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 Detail- 
can_become_site_master_flagpublic static final short can_become_site_master_flag - See Also:
- Constant Field Values
 
 - 
siteprotected java.lang.String site 
 - 
configprotected java.lang.String config 
 - 
can_become_site_masterprotected boolean can_become_site_master 
 - 
max_site_mastersprotected int max_site_masters 
 - 
site_masters_ratioprotected double site_masters_ratio 
 - 
site_master_picker_implprotected java.lang.String site_master_picker_impl 
 - 
async_relay_creationprotected boolean async_relay_creation 
 - 
delay_sites_downprotected boolean delay_sites_down 
 - 
suppress_time_no_route_errorsprotected long suppress_time_no_route_errors 
 - 
is_site_masterprotected volatile boolean is_site_master 
 - 
site_mastersprotected volatile java.util.List<Address> site_masters 
 - 
broadcast_route_notificationsprotected volatile boolean broadcast_route_notifications 
 - 
relayerprotected volatile Relayer relayer 
 - 
topoprotected final Topology topo 
 - 
forward_to_site_masterprotected final java.util.concurrent.atomic.LongAdder forward_to_site_master Number of messages forwarded to the local SiteMaster
 - 
forward_sm_timeprotected final java.util.concurrent.atomic.LongAdder forward_sm_time 
 - 
relayedprotected final java.util.concurrent.atomic.LongAdder relayed Number of messages relayed by the local SiteMaster to a remote SiteMaster
 - 
relayed_timeprotected final java.util.concurrent.atomic.LongAdder relayed_time Total time spent relaying messages from the local SiteMaster to remote SiteMasters (in ns)
 - 
forward_to_local_mbrprotected final java.util.concurrent.atomic.LongAdder 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_timeprotected final java.util.concurrent.atomic.LongAdder forward_to_local_mbr_time 
 - 
prots_aboveprotected short[] prots_above 
 - 
timerprotected TimeScheduler timer 
 - 
site_master_pickerprotected SiteMasterPicker site_master_picker 
 - 
viewprotected volatile View view 
 - 
membersprotected volatile java.util.List<Address> members 
 - 
route_status_listenerprotected volatile RouteStatusListener route_status_listener 
 - 
site_master_listenerprotected java.util.function.Consumer<java.lang.Boolean> site_master_listener Listens for notifications about becoming site master (arg: true), or ceasing to be site master (arg: false)
 - 
sitesprotected final java.util.Map<java.lang.String,RelayConfig.SiteConfig> sites A map containing site names (e.g. "LON") as keys and SiteConfigs as values
 - 
site_configprotected RelayConfig.SiteConfig site_config 
 - 
suppress_log_no_routeprotected SuppressLog<java.lang.String> suppress_log_no_route Log to suppress identical errors for messages to non-existing sites ('no route to site X')
 
- 
 - 
Method Detail- 
getNumForwardedToSiteMasterpublic long getNumForwardedToSiteMaster() 
 - 
getTimeForwardingToSMpublic long getTimeForwardingToSM() 
 - 
getAvgMsgsForwardingToSMpublic long getAvgMsgsForwardingToSM() 
 - 
getNumRelayedpublic long getNumRelayed() 
 - 
getTimeRelayingpublic long getTimeRelaying() 
 - 
getAvgMsgsRelayingpublic long getAvgMsgsRelaying() 
 - 
getNumForwardedToLocalMbrpublic long getNumForwardedToLocalMbr() 
 - 
getTimeForwardingToLocalMbrpublic long getTimeForwardingToLocalMbr() 
 - 
getAvgMsgsForwardingToLocalMbrpublic long getAvgMsgsForwardingToLocalMbr() 
 - 
getNumberOfNoRouteErrorspublic int getNumberOfNoRouteErrors() 
 - 
clearNoRouteCachepublic <T extends RELAY> T clearNoRouteCache() 
 - 
getSitepublic java.lang.String getSite() 
 - 
sitepublic java.lang.String site() 
 - 
setSitepublic <T extends RELAY> T setSite(java.lang.String s) 
 - 
sitepublic <T extends RELAY> T site(java.lang.String s) 
 - 
topopublic Topology topo() 
 - 
viewpublic View view() 
 - 
memberspublic java.util.List<Address> members() 
 - 
configpublic java.lang.String config() 
 - 
configpublic <T extends RELAY> T config(java.lang.String cfg) 
 - 
getConfigpublic java.lang.String getConfig() 
 - 
setConfigpublic <T extends RELAY> T setConfig(java.lang.String c) 
 - 
getTimerpublic TimeScheduler getTimer() 
 - 
incrementRelayedpublic void incrementRelayed() 
 - 
addToRelayedTimepublic void addToRelayedTime(long d) 
 - 
siteMasterspublic java.util.List<Address> siteMasters() 
 - 
canBecomeSiteMasterpublic boolean canBecomeSiteMaster() 
 - 
canBecomeSiteMasterpublic <T extends RELAY> T canBecomeSiteMaster(boolean f) 
 - 
getMaxSiteMasterspublic int getMaxSiteMasters() 
 - 
setMaxSiteMasterspublic <T extends RELAY> T setMaxSiteMasters(int m) 
 - 
getSiteMastersRatiopublic double getSiteMastersRatio() 
 - 
setSiteMastersRatiopublic <T extends RELAY> T setSiteMastersRatio(double r) 
 - 
getSiteMasterPickerImplpublic java.lang.String getSiteMasterPickerImpl() 
 - 
setSiteMasterPickerImplpublic <T extends RELAY> T setSiteMasterPickerImpl(java.lang.String s) 
 - 
siteMasterPickerpublic <T extends RELAY> T siteMasterPicker(SiteMasterPicker s) 
 - 
asyncRelayCreationpublic boolean asyncRelayCreation() 
 - 
asyncRelayCreationpublic <T extends RELAY> T asyncRelayCreation(boolean flag) 
 - 
delaySitesDownpublic boolean delaySitesDown() 
 - 
delaySitesDownpublic <T extends RELAY> T delaySitesDown(boolean b) 
 - 
broadcastRouteNotificationspublic boolean broadcastRouteNotifications() 
 - 
broadcastRouteNotificationspublic <T extends RELAY> T broadcastRouteNotifications(boolean b) 
 - 
getRouteStatusListenerpublic RouteStatusListener getRouteStatusListener() 
 - 
setRouteStatusListenerpublic void setRouteStatusListener(RouteStatusListener l) 
 - 
setSiteMasterListenerpublic <T extends RELAY> T setSiteMasterListener(java.util.function.Consumer<java.lang.Boolean> l) 
 - 
addSitepublic <T extends RELAY> T addSite(java.lang.String n, RelayConfig.SiteConfig cfg) 
 - 
siteNamespublic java.util.List<java.lang.String> siteNames() 
 - 
isSiteMasterpublic boolean isSiteMaster() 
 - 
getSitespublic java.util.List<java.lang.String> getSites() 
 - 
printSitespublic java.lang.String printSites() 
 - 
getNumRoutespublic int getNumRoutes() 
 - 
printRoutespublic java.lang.String printRoutes() 
 - 
getRoutepublic Route getRoute(java.lang.String site_name) 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
 
 - 
getCurrentSitespublic java.util.List<java.lang.String> getCurrentSites() - Returns:
- A Listof sites name that are currently up ornullif this node is not a Site Master (i.e.isSiteMaster()returns false).
 
 - 
getBridgepublic JChannel getBridge(java.lang.String site_name) 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
 
 - 
getBridgeViewpublic View getBridgeView(java.lang.String cluster_name) 
 - 
resetStatspublic void resetStats() - Overrides:
- resetStatsin class- Protocol
 
 - 
initpublic void init() throws java.lang.ExceptionDescription 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.
 - 
stoppublic 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.
 - 
configurepublic void configure() throws java.lang.Exception- Throws:
- java.lang.Exception
 
 - 
parsepublic void parse(XmlNode node) throws java.lang.Exception 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
 - 
downpublic java.lang.Object down(Event evt) 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().
 - 
uppublic java.lang.Object up(Event evt) 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().
 - 
handleViewpublic abstract void handleView(View v) 
 - 
handleRelayMessageprotected abstract void handleRelayMessage(Message msg) 
 - 
isLocalprotected boolean isLocal(SiteAddress addr) 
 - 
isLocalSitemasterprotected boolean isLocalSitemaster(SiteAddress addr) 
 - 
parseSiteConfigurationprotected void parseSiteConfiguration(java.util.Map<java.lang.String,RelayConfig.SiteConfig> map) throws java.lang.Exception Parses the configuration by reading the config file- Throws:
- java.lang.Exception
 
 - 
copyprotected Message copy(Message msg) Copies the message, but only the headers above the current protocol (RELAY) (or RpcDispatcher related headers)
 - 
sitesChangeprotected void sitesChange(boolean down, java.util.Set<java.lang.String> sites)
 - 
notifySiteMasterListenerprotected void notifySiteMasterListener(boolean flag) 
 - 
getPhysicalAddressprotected PhysicalAddress getPhysicalAddress(Address mbr) 
 - 
determineSiteMastersprotected static java.util.List<Address> 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. 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)
 - 
pickSiteMasterprotected Address pickSiteMaster(Address sender) Returns a site master from site_masters
 - 
triggerSiteUnreachableEventprotected void triggerSiteUnreachableEvent(SiteAddress remoteSite) 
 - 
triggerMemberUnreachableEventprotected void triggerMemberUnreachableEvent(Address mbr) 
 
- 
 
-