Package org.jgroups.protocols.relay
Class StickySiteMasterPicker
- java.lang.Object
-
- org.jgroups.protocols.relay.RandomSiteMasterPicker
-
- org.jgroups.protocols.relay.StickySiteMasterPicker
-
- All Implemented Interfaces:
SiteMasterPicker
public class StickySiteMasterPicker extends RandomSiteMasterPicker
Picks a local site master or a route based on the sender and caches the decision. Next time, the same local site master or route will be returned. If no route exists yet, a random local site master or route is picked.- Since:
- 5.3.1
- Author:
- Bela Ban
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<Address,Address>
local_sm_cache
protected java.util.Map<Address,Route>
route_cache
-
Fields inherited from class org.jgroups.protocols.relay.RandomSiteMasterPicker
addr_supplier, verbose
-
-
Constructor Summary
Constructors Constructor Description StickySiteMasterPicker()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Route
pickRoute(java.lang.String site, java.util.List<Route> routes, Address original_sender)
Picks a route to a given remote site from a list of routes.Address
pickSiteMaster(java.util.List<Address> site_masters, Address original_sender)
Needs to pick a member from a list of addresses of site masters-
Methods inherited from class org.jgroups.protocols.relay.RandomSiteMasterPicker
addressSupplier, verbose, verbose
-
-
-
-
Method Detail
-
pickSiteMaster
public Address pickSiteMaster(java.util.List<Address> site_masters, Address original_sender)
Description copied from interface:SiteMasterPicker
Needs to pick a member from a list of addresses of site masters- Specified by:
pickSiteMaster
in interfaceSiteMasterPicker
- Overrides:
pickSiteMaster
in classRandomSiteMasterPicker
- Parameters:
site_masters
- The list of site mastersoriginal_sender
- The address of the original member sending a message- Returns:
- The address of the site master (in the local cluster) to be used to forward the message to
-
pickRoute
public Route pickRoute(java.lang.String site, java.util.List<Route> routes, Address original_sender)
Description copied from interface:SiteMasterPicker
Picks a route to a given remote site from a list of routes.- Specified by:
pickRoute
in interfaceSiteMasterPicker
- Overrides:
pickRoute
in classRandomSiteMasterPicker
- Parameters:
site
- The name of the target (remote) site. Added for informational purposes; may or may not be used as selection criterium.routes
- The list of routes. A route can be picked for example by using the address of the remote site master:Route.siteMaster()
original_sender
- The address of the original sender- Returns:
- A route
-
-