When a user logs into a computer system on the Internet, he might be using underlying server affinity technology. This is a technique where an individual user is tied to a specific computer server on the Internet. This one-to-one correlation is typically necessary for computer applications that store critical information on an individual. Some examples include online bill-paying systems, banking, and retail services.
Server affinity is a computer technique where customer information is temporarily saved onto a computer device to allow the completion of online sales transactions. This is most often used in retail sales programs. It ensures that a transaction will remain intact on the server until the purchase is complete.
Most large computer applications are distributed across many clusters of servers. This distributed process requires a form of server affinity to ensure the user's session activity is available for each request. A load balancer typically manages this process in a manner similar to an automated traffic cop. As each subsequent request is interpreted, the load balancer determines which server should manage the process.
There are many ways to make server affinity work. One of the most widely used techniques is known as sticky session management. This is a process where user session information is stored into the local memory of the server that started the initial transaction. This information is also saved on the local computer for each additional request as a cookie. If the user makes additional requests, he is automatically directed to the server that started the transaction.
Server affinity places a few limitations on a computer application. This technique typically impacts performance, flexibility, and reliability. When a program uses this approach, it forces requests to go to specific servers in the cluster. If these servers become overloaded or unavailable, the user will typically receive an error message that the Internet website is down, even though other servers are available.
When a distributed computer system is truly load balanced, each request is routed to a different server. This load balancing approach is diminished when server affinity techniques are applied. The load balancer is forced to send request to specific machines, which can cause a box to become overloaded with requests.
It is important to consider other options before implementing server affinity solutions. This typically limits the performance and scalability of an Internet-based application, which directly impacts the usage of the application. Some better options include both local memory storage and database storage techniques that allow for stateless request to the application.