Category: 

What Is Server Affinity?

Article Details
  • Written By: Troy Holmes
  • Edited By: W. Everett
  • Last Modified Date: 16 September 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
In late 19th-century London, mail was delivered to residential addresses up to twelve times each day.   more...

September 28 ,  1924 :  Two US military planes complete the first flights around the world.  more...

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.

Ad

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.

Ad

You might also Like

Recommended

Discuss this Article

Post your comments

exception 'Exception' with message 'error writing captcha: Duplicate entry '2147483647' for key 'PRIMARY'' in /ssd/www/wisegeek/public_html/_core/classes/public/Captcha.php:44
Stack trace:
#0 /ssd/www/wisegeek/public_html/_core/controls/public/ControlDiscussionPostBox.php(324): Captcha->createCaptcha()
#1 /ssd/www/wisegeek/public_html/framework/classes/Control.php(104): ControlDiscussionPostBox->preRender(false)
#2 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): Control->render()
#3 /ssd/www/wisegeek/public_html/tpl/default-nocustom-lu/pages/public/article/article.htm(526): Control->__toString()
#4 /ssd/www/wisegeek/public_html/framework/classes/Control.php(300): require('/ssd/www/wisege...')
#5 /ssd/www/wisegeek/public_html/framework/classes/Control.php(309): Control->requireTpl('pages/public/ar...', Object(PageArticleCom), true)
#6 /ssd/www/wisegeek/public_html/framework/classes/Control.php(131): Control->renderTpl('pages/public/ar...', Object(PageArticleCom))
#7 /ssd/www/wisegeek/public_html/framework/classes/FormDataControl.php(87): Control->renderTemplate()
#8 /ssd/www/wisegeek/public_html/framework/classes/Control.php(109): FormDataControl->renderTemplate()
#9 /ssd/www/wisegeek/public_html/framework/classes/ScriptPage.php(50): Control->render(false)
#10 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): ScriptPage->render()
#11 /ssd/www/wisegeek/public_html/framework/classes/Page.php(97): Control->__toString()
#12 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(443): Page->processRequest()
#13 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(7): PublicFrontController->renderPage()
#14 /ssd/www/wisegeek/public_html/index.php(11): PublicFrontController::run()
#15 {main}