|Applies To||ClearTrust Server 5.5.3|
RSA Access Manager 6.0
|Issue||What is the difference between ADAPTIVE and ROUNDROBIN modes|
|Resolution||ADAPTIVE mode is a subtype of the DISTRIBUTED mode of the agent that distributes the establishment of connections between the agents and the available aservers based on the ability of the aservers to service the requests. These connections are fairly long lived, so the distribution of actual load on the aservers may appear not to be equally distributed depending on how you view the statistics. Overall the load should be distributed fairly equitably, but over shorter time spans some aservers may have more connections or may experience more load than others.|
Here is how the agents determine how to route requests. When each agent starts up it executes a pool refresh event. During the pool refresh event the agent will get a list of all available aservers from the dispatcher, and then send a test request to each aserver to ascertain which aserver has the least load. Each aserver returns a number with each request that indicates the request queue length on that aserver and a value representing the time it took to service a particular request. The agent will create a list of aservers sorted first by location class (if used) then by queue length, and then by request latency. The agent will then select the first aserver in this sorted list and will send all subsequent requests to that aserver until the next pool refresh event occurs.
A pool refresh event will occur for each agent every 60 minutes, or if the existing connection fails to return a result within the timeout period. Note that agents only reassess the status of the aservers during a pool refresh event. With many agents pool refresh times are likely to be staggered, but agents started at the same time will of course refresh their pools at similar times.
The ADAPTIVE system works well if there are many agents and many aservers and the agents are all refreshing at random times. Statistically there is enough requests that the load evens out. Artifacts can crop up in the system with small numbers of agents, or if the agents are all restarted at once, or a if small number of agents have a disproportionate amount of load (I suspect this to be the case in this instance).
The agents also support a different subtype of the DISTRIBUTED mode called ROUND ROBIN. The ROUND ROBIN mode does not establish long lived connections to between the agent and a specific aserver. Instead agents configured for ROUND ROBIN mode will route requests alternately to each aserver in the aserver list (or for the location class if location classes are being used). ROUND ROBIN does not consider the queue length or latency of individual aservers but instead routes each request to a different aserver. This method is more responsive to rapid changes in agent load and will distribute request more equitably across available aservers.
In comparing the performance of ADAPTIVE and ROUND ROBIN mode there are three aspects to consider: Load balancing, failover, and performance. The agent aserver mode subtly affects all three aspects. ROUND ROBIN will adversely affect aserver performance as sequential requests will be sent to different aservers. This largely negates the advantage of the aserver cache. Cache misses cause higher response times. This also increases the load on the datastore which further increases latency. So this mode may reduce performance but it will provide the most equitable load balancing.
ADAPTIVE mode usually provides adequate load balancing. Since aserver connections are long lived, the aserver cache is more effective and the demand on the datastore is less. Response times are quicker due to both factors.
Both modes are pretty much the same for failover. There is one kind of failure mode with ROUND ROBIN mode that ADAPTIVE handles better. If one aserver develops a problem that is not fatal, but affects performance, agents will still use it. (Initially the same thing would occur in ADAPTIVE mode but eventually agents would tend towards the other servers.) Since requests will be routed to all the aservers in the active list regardless of their queue length or latency, when using ROUND ROBIN mode all aservers in the list must be in the same location and have similar performance.
The negative performance impact of ROUND ROBIN is hard to quantify. It is different for each customer, but most likely it is not a large factor. If you have slower machines and slower datastores and the aservers are right at the limit of capacity it might cause problems. Overall the load on the entire system will be higher with ROUND ROBIN and the average response time will be slower. In ADAPTIVE mode since the load may not be distributed as evenly the peak response times may be higher but the average is likely to be lower.
|Legacy Article ID||a37951|