Supplied Algorithms

FlexNet Manager Suite 2020 R1 (On-Premises)
FlexNet Manager Suite includes the following algorithms that inventory devices may use for assigning priorities to inventory beacons:
  • MgsBandwidth: Priorities are based on end-to-end bandwidth availability to the server
  • MgsDomainMatch: Priorities are determined by closest match in domain name
    Tip: On UNIX-like platforms, using this algorithm requires that you have first set the ComputerDomain preference to a valid domain name. This is used as the domain of the inventory device for comparison with the domains of inventory beacons.
  • MgsIPMatch: Priorities are determined by closest IP address match
  • MgsNameMatch: Matches prefixes in computer names
  • MgsPing: Priorities are determined by fastest ping response time
  • MgsRandom: Random priorities are assigned
  • MgsSubnetMatch: Moves all servers in the current subnet to the front of the priority list, but retaining the relative order of existing priorities.
The preceding algorithms may be used on both Windows and UNIX-like platforms. In addition, the following algorithms are available only for inventory devices running Microsoft Windows:
  • MgsADSiteMatch: Moves all servers in the current managed device’s site to the front of the priority list
  • MgsDHCP: Priorities are based on lists of servers specified in DHCP
  • MgsServersFromAD: Priorities are determined according to lists of servers specified in Active Directory.
Tip: When unable to differentiate between locations, the supplied algorithms assign priorities according to the order in which locations are listed in the registry settings.

How you use these algorithms depends on the structure of your hierarchy of inventory beacons, and how you want to spread the load of file uploads and downloads across that hierarchy.

For example, random priorities may be useful if you want to ensure a good load balance across inventory beacons, while domain matching may tend to favor particular inventory beacons.

You can choose a combination of fixed and assigned dynamic priorities, where you determine the priorities of some servers, but allow the priorities of other servers to be assigned by the supplied algorithms. For example, there may be a number of inventory beacons to which you want to specifically assign low priorities, but let the inventory device randomly assign priorities amongst the inventory beacons you want to use more often. In this scenario, for each location that requires a fixed priority, you would set the AutoPriority preference to false and manually assign a value for the Priority preference.

For mobile users, whose upload and download speeds can be severely affected by the decision about which inventory beacon to use, the IP matching algorithm is most often favored. When a mobile user connects to the network and is allocated an IP address, the inventory device uses the inventory beacon with the closest match to that IP address, matching components of the IP address from left to right. For example, when a mobile user who travels to different geographic regions is in Germany, the IP matching algorithm assigns higher priority to the company's European inventory beacons. When the same mobile user travels to New York, the company's US inventory beacons get highest priority.

Algorithms like site matching and name matching can be useful in large enterprises. Among other effects, you can use them to limit the range of fastest response servers, and thereby control network impacts.

You can use more than one algorithm. When you do this, the inventory device assigns priorities according to the first algorithm, then reassigns priorities according to subsequent ones. This can be used to refine priorities, or to ensure a shared load across inventory beacons, as the following example shows:
SelectorAlgorithm="MgsDomainMatch;MgsRandom(3)"

This means that the inventory device should sort all inventory beacons using a domain match, then randomize the top three inventory beacons. As another example, using a combination of IP matching and random algorithms would help balance the load between inventory beacons with similar IP addresses.

An empty string for SelectorAlgorithm means that no algorithm is used to determine the download or upload location. In this case, the most recent priority values assigned to locations are used.

By combining algorithms, you can also limit the number of inventory beacons that other algorithms will test, since they will all ignore any inventory beacon with a priority set to invalid (or indeed, to any string that does not represent an integer). For example, a combination such as:
MgsADSiteMatch(, true);MgsSubnetMatch(, true);MgsPing(3)
will prioritize the fastest three inventory beacons within the target inventory device’s site and subnet. The important thing to notice is that only devices within the Active Directory site are checked for subnet matching; and only the devices in the same subnet as the inventory device are pinged to determine response time. If the order were different, and MgsPing were first, the inventory device would have tried pinging every inventory beacon in the failover list.

Remember that the algorithms only assign values to locations that have the AutoPriority registry key set to true.

Details of each of the supplied algorithms follow.

FlexNet Manager Suite (On-Premises)

2020 R1